Function at 0x50f170
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x71bf00
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
push ebx
push ebp
mov ebp, dword [esp + 0x84]
mov eax, dword [ebp + 0x38]
mov edx, dword [ebp + 0x44]
push esi
mov esi, ecx
mov ecx, dword [ebp + 0x3c]
push edi
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x50]
mov edi, 9
cmp word [ebp + 0x6e], di
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], edx
jae 0x50f219
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x34]
push edx
push eax
call fcn.004ae830
mov ecx, eax
call fcn.004ade40
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], ecx
mov word [ebp + 0x6e], di
jmp 0x50f227
mov edx, dword [ebp + 0x54]
mov eax, dword [ebp + 0x58]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
xor eax, eax
xor ebx, ebx
cmp word [ebp + 0x6e], di
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
jbe 0x50f24c
mov cx, word [ebp + 0x60]
mov edx, dword [ebp + 0x64]
mov ebx, dword [ebp + 0x5c]
mov word [esp + 0x1c], cx
mov dword [esp + 0x20], edx
cmp dword [esi + 0xa88], eax
je 0x50f297
mov eax, dword [0x7a39fc]
mov ebp, dword [eax + 4]
mov eax, dword [esi + 4]
push eax
mov ecx, ebp
call fcn.005eda50
push eax
mov ecx, ebp
call fcn.005ed8b0
mov ecx, eax
call fcn.006349c0
mov edi, eax
test edi, edi
jl 0x50f297
mov ecx, ebp
call fcn.005ed8b0
imul edi, edi, 0x88
lea ecx, [edi + eax + 0x24]
push 0xbc50
call fcn.006345e0
mov edx, dword [esi]
mov ebp, dword [esp + 0x18]
mov ecx, esi
mov dword [esi + 0x52c], 0xbb8
call dword [edx + 0x94]
cmp eax, 1
je 0x50fada
mov ecx, esi
call fcn.0063e7f0
cmp eax, 1
je 0x50fada
mov ecx, esi
call fcn.004ef890
cmp eax, 1
je 0x50fada
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x40]
push edx
lea edx, [esp + 0x48]
push edx
push eax
call fcn.004ae830
mov ecx, eax
call fcn.004ade40
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 8]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x54]
push edx
push eax
call fcn.004aede0
mov ecx, eax
call fcn.004ae460
test ebx, ebx
je 0x50f381
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x20]
mov ecx, esi
jae 0x50f352
movzx eax, word [esp + 0x1c]
mov edx, dword [esi]
push eax
call dword [edx + 0x7c]
mov eax, dword [0x745dbc]
jmp 0x50fb03
mov edi, dword [esi]
call fcn.004f0f90
push eax
mov ecx, esi
call dword [edi + 0x7c]
mov ecx, esi
mov dword [esi + 0x96c], 0
call fcn.004ef450
mov ecx, esi
call fcn.004f7530
mov eax, dword [0x745dc0]
jmp 0x50fb03
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push ebp
call fcn.004ae750
cmp ebp, 0x7f000000
mov edi, eax
je 0x50f3b2
test edi, edi
jne 0x50f3b6
mov edi, dword [esi]
mov ecx, esi
call fcn.004f0f90
push eax
mov ecx, esi
call dword [edi + 0x7c]
jmp 0x50fae6
test edi, edi
je 0x50f3f0
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x30]
test eax, eax
je 0x50f3e8
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x94]
test eax, eax
jne 0x50f39e
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov ecx, eax
call fcn.004ef890
test eax, eax
jne 0x50f39e
cmp ebp, 0x7f000000
jne 0x50f3fe
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x528], eax
jmp 0x50f404
mov dword [esi + 0x528], ebp
test edi, edi
mov dword [esp + 0x20], 0
je 0x50f41b
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x30]
mov dword [esp + 0x20], eax
mov eax, dword [0x7a39fc]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 8]
push edx
call fcn.004ae760
mov ebx, eax
xor edi, edi
cmp ebx, edi
mov dword [esp + 0x14], ebx
je 0x50f46d
mov eax, dword [esp + 0x34]
push eax
mov ecx, ebx
call fcn.00553960
cmp eax, edi
mov dword [esp + 0x54], eax
je 0x50f46d
movzx eax, word [eax + 2]
mov ecx, dword [0x7a3a28]
mov ecx, dword [ecx + 0x8c]
push eax
mov dword [esp + 0x40], eax
call fcn.0059b6d0
mov ebp, eax
cmp ebp, edi
jne 0x50f487
mov ebx, dword [esi]
mov ecx, esi
call fcn.004f0f90
push eax
mov ecx, esi
call dword [ebx + 0x7c]
mov dword [esi + 0x96c], edi
jmp 0x50faf0
mov eax, dword [ebp + 0x148]
cmp eax, edi
mov ecx, esi
je 0x50f4a7
push 1
call fcn.004f87d0
push 1
push 1
mov ecx, esi
call fcn.004f2610
jmp 0x50f4ae
push 2
call fcn.004f87d0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
call fcn.005b3190
push str.MODELTYPE
lea ecx, [esp + 0x4c]
mov dword [esp + 0x88], edi
call fcn.005e5a90
mov edx, dword [0x7a3a28]
mov eax, dword [edx + 0xb8]
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0x5c]
push ecx
movzx ecx, word [esi + 0xa60]
lea edx, [esp + 0x4c]
push edx
push ecx
mov ecx, eax
mov byte [esp + 0x90], 1
call int.00413270
lea ecx, [esp + 0x48]
mov byte [esp + 0x84], 0
call fcn.005e5c20
push 0x747c28
lea ecx, [esp + 0x60]
call fcn.005e58c0
test eax, eax
jne 0x50f559
push 0x73ece0
lea ecx, [esp + 0x60]
call fcn.005e58c0
test eax, eax
jne 0x50f559
xor edi, edi
jmp 0x50f55e
mov edi, 1
mov edx, dword [esp + 0x8c]
xor eax, eax
mov ecx, ebx
mov dword [edx + 0x70], eax
mov dword [esp + 0x38], eax
call fcn.005b4790
movzx eax, byte [eax + 0xac]
add eax, 0xfffffffa
cmp eax, 0x29
ja case.0x50f58f.7
movzx eax, byte [eax + 0x50fb30]
jmp dword [eax*4 + 0x50fb18]
neg edi
sbb edi, edi
and edi, 0x45
add edi, 0x2711
mov dword [esp + 0x10], edi
mov edi, 0x2ee
mov ebp, 0x5dc
jmp 0x50f6e0
neg edi
sbb edi, edi
and edi, 0x87
add edi, 0x2711
mov dword [esp + 0x10], edi
mov edi, 0x2ee
mov ebp, 0x5dc
jmp 0x50f6e0
test edi, edi
je 0x50f650
lea ecx, [esi + 0x90]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.00423bc0
fld dword [esp + 0x5c]
fmul dword [esp + 0x5c]
add esp, 0xc
fld dword [esp + 0x4c]
fmul dword [esp + 0x4c]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [esp + 0x48]
faddp st(1)
fld dword [0x7a1b50]
fmul dword [0x7a1b50]
fcompp
fnstsw ax
test ah, 0x41
jp 0x50f631
mov dword [esp + 0x10], 0x2791
jmp 0x50f658
mov dword [esp + 0x10], 0x2792
mov edi, 0x2bc
mov ebp, 0x5dc
mov dword [esp + 0x38], 1
jmp 0x50f6e0
mov dword [esp + 0x10], 0x2711
mov edi, 0x320
mov ebp, 0x5dc
mov dword [esp + 0x38], 1
jmp 0x50f6e0
neg edi
sbb edi, edi
and edi, 0x87
add edi, 0x2711
mov dword [esp + 0x10], edi
mov edi, 0x258
mov ebp, 0x3e8
jmp 0x50f6e0
mov ecx, esi
call fcn.004efb20
test eax, eax
mov ebp, 0x5dc
je 0x50f6b4
push 0x2af9
mov ecx, eax
call fcn.0063c0e0
call fcn.006fae8c
mov edi, eax
sub edi, 0x32
jmp 0x50f6b9
mov edi, 0x12c
cmp dword [esp + 0x28], edi
sbb eax, eax
add eax, 0x2afa
mov dword [esp + 0x10], eax
jmp 0x50f6e0
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x10], 0x2721
mov edi, 1
lea ebp, [eax + 1]
mov ecx, dword [esi + 0x9c8]
mov eax, dword [ecx + 0x934]
test eax, eax
mov ebx, dword [esp + 0x18]
jne 0x50f780
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x1c], 0
je 0x50f713
mov eax, 1
mov dword [esp + 0x1c], eax
jmp 0x50f72e
push ebx
call fcn.004d2c30
mov ecx, dword [esi + 0x9c8]
lea edx, [esp + 0x1c]
push edx
push ebx
mov dword [esp + 0x24], eax
call fcn.004d2d60
mov ecx, dword [esi + 0x9c8]
push 0
push 0
push eax
mov eax, dword [esp + 0x28]
push eax
push ebx
call fcn.004d5f70
mov ecx, dword [esi + 0x9c8]
push 0
push 0
call fcn.004d28b0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x9c8]
push eax
push 1
call fcn.004d28f0
mov ecx, dword [esi + 0x9c8]
push 0
push ebp
call fcn.004d2920
mov ecx, dword [esi + 0x9c8]
push 0
push ebp
call fcn.004d3440
mov eax, dword [esi + 0x96c]
test eax, eax
jne 0x50f7e2
mov ecx, dword [esp + 0x14]
call fcn.005b4790
cmp byte [eax + 0xac], 0x19
je 0x50f7ae
mov ecx, dword [esp + 0x14]
call fcn.005b4790
cmp byte [eax + 0xac], 0x19
jne 0x50f7d8
mov eax, dword [esi + 0x9d4]
test eax, eax
je 0x50f7cc
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push 2
call fcn.004ae9f0
test eax, eax
jne 0x50f7d8
push 0x7f000000
mov ecx, esi
call fcn.0060e760
mov dword [esi + 0x96c], 1
cmp dword [esp + 0x28], edi
jae 0x50f925
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x14]
push edx
mov ecx, ebp
call fcn.00555a60
cmp ax, 1
jae 0x50f853
mov eax, dword [esp + 0x54]
mov ax, word [eax + 6]
cmp ax, 0xd
je 0x50f853
cmp ax, 7
je 0x50f853
mov edi, dword [esi]
mov ecx, esi
call fcn.004f0f90
push eax
mov ecx, esi
call dword [edi + 0x7c]
mov ecx, esi
mov dword [esi + 0x96c], 0
call fcn.004ef450
mov ecx, esi
call fcn.004f7530
push 0
push 0x17
mov ecx, esi
call fcn.004ede10
mov esi, dword [0x745dc4]
jmp 0x50fac2
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x64]
mov dword [esi + 0x1c0], ecx
mov ecx, dword [esp + 0x68]
lea edx, [esi + 0x1b0]
mov dword [edx], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x24]
xor edi, edi
mov dword [esi + 0x95c], ecx
push edi
mov ecx, esi
mov dword [esi + 0x1bc], ebx
mov dword [edx + 8], eax
mov dword [esi + 0x1cc], edi
mov dword [esi + 0x964], edi
call fcn.004cb9e0
mov ecx, dword [esi + 0xa74]
xor eax, eax
mov al, byte [ecx + 0x89]
dec al
push edi
push eax
call fcn.005a5090
mov ebx, dword [esp + 0x20]
cmp ebx, edi
movzx eax, al
mov dword [esi + 0x968], eax
je 0x50f90d
mov ecx, ebp
call fcn.005b4790
cmp byte [eax + 0xac], 0x19
je 0x50f8f5
mov ecx, ebp
call fcn.005b4790
cmp byte [eax + 0xac], 0x2d
je 0x50f8f5
mov ecx, ebp
call fcn.005b4790
cmp byte [eax + 0xac], 0x2f
jne 0x50f90d
movzx eax, word [esp + 0x10]
mov edx, dword [ebx]
mov ecx, ebx
push eax
call dword [edx + 0x7c]
mov esi, dword [0x745dbc]
jmp 0x50fac2
movzx eax, word [esp + 0x10]
mov edx, dword [esi]
mov ecx, esi
push eax
call dword [edx + 0x7c]
mov esi, dword [0x745dbc]
jmp 0x50fac2
mov eax, dword [esi + 0x1cc]
test eax, eax
jne 0x50fa8b
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x3c]
lea ecx, [esi + 0x1b0]
mov dword [ecx], edx
mov edx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 8], edx
push 0
mov ecx, esi
mov dword [esi + 0x1c0], edi
mov dword [esi + 0x1bc], ebx
mov dword [esi + 0x1cc], 0
mov dword [esi + 0x95c], eax
mov dword [esi + 0x964], 1
call fcn.004cb9e0
mov ecx, dword [esi + 0xa74]
xor eax, eax
mov al, byte [ecx + 0x89]
dec al
push 0
push eax
call fcn.005a5090
movzx eax, al
mov dword [esi + 0x968], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x50f9eb
mov ecx, dword [esp + 0x14]
call fcn.005b4790
cmp byte [eax + 0xac], 0x19
je 0x50f9e3
mov ecx, dword [esp + 0x14]
call fcn.005b4790
cmp byte [eax + 0xac], 0x2d
je 0x50f9e3
mov ecx, dword [esp + 0x14]
call fcn.005b4790
cmp byte [eax + 0xac], 0x2f
jne 0x50f9eb
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
jmp 0x50f9ef
mov edx, dword [esi]
mov ecx, esi
movzx eax, word [esp + 0x10]
push eax
call dword [edx + 0x7c]
mov eax, dword [esi + 0x9c8]
mov ecx, dword [eax + 0x968]
push 0
push 0
push 0
inc ecx
push 0
mov dword [eax + 0x968], ecx
mov ecx, dword [esp + 0x34]
push ecx
push 0xff
push ebx
lea edx, [esp + 0x80]
push edx
push edi
mov ecx, esi
call fcn.004cdf50
mov ecx, dword [esi + 0x9c8]
call fcn.004d35c0
cmp eax, 1
jne 0x50fa49
mov ecx, dword [esi + 0x9c8]
call fcn.004d3ba0
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x38]
push eax
mov ecx, edi
call fcn.0055de20
mov ecx, edi
call fcn.005b4790
mov al, byte [eax + 0xac]
cmp al, 0xc
jne 0x50fa8b
mov eax, dword [esp + 0x8c]
mov dword [eax + 0x5c], 1
mov word [eax + 0x60], 0x2afa
mov dword [eax + 0x64], ebp
mov word [eax + 0x6e], 0xc
cmp dword [esp + 0x28], ebp
jb 0x50f91a
mov edi, dword [esi]
mov ecx, esi
call fcn.004f0f90
push eax
mov ecx, esi
call dword [edi + 0x7c]
mov ecx, esi
mov dword [esi + 0x96c], 0
call fcn.004ef450
mov ecx, esi
call fcn.004f7530
mov esi, dword [0x745dc0]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x84], 0xffffffff
call fcn.005e5c20
mov eax, esi
jmp 0x50fb03
mov edx, dword [esi]
push 0x2710
mov ecx, esi
call dword [edx + 0x7c]
mov dword [esi + 0x96c], 0
mov ecx, esi
call fcn.004ef450
mov ecx, esi
call fcn.004f7530
mov eax, dword [0x745dc4]
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x78
ret 4