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

Disassembly:
push 0xffffffffffffffff
push 0x71bfb8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x68]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
call fcn.005b3190
mov eax, dword [esi + 0xa88]
test eax, eax
mov dword [esp + 0x90], 0
je 0x514b87
mov eax, dword [0x7a39fc]
mov ebx, dword [eax + 4]
mov eax, dword [esi + 4]
push eax
mov ecx, ebx
call fcn.005eda50
push eax
mov ecx, ebx
call fcn.005ed8b0
mov ecx, eax
call fcn.006349c0
mov edi, eax
test edi, edi
jl 0x514b87
mov ecx, ebx
call fcn.005ed8b0
imul edi, edi, 0x88
lea ecx, [edi + eax + 0x24]
push 0xbc50
call fcn.006345e0
mov edx, dword [esi]
mov ecx, esi
mov dword [esi + 0x52c], 0xbb8
call dword [edx + 0x94]
cmp eax, 1
je 0x514d55
mov ecx, esi
call fcn.0063e7f0
cmp eax, 1
je 0x514d55
mov ecx, esi
call fcn.004ef890
cmp eax, 1
je 0x514d55
mov edi, dword [esp + 0x98]
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0x40]
mov ebp, dword [edi + 0x4c]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x44]
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x58]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x54]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 0x64]
mov dword [esp + 0x3c], edx
mov edx, dword [edi + 0x50]
mov dword [esp + 0x34], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x60], ecx
mov ebx, eax
shr ebx, 0x1e
mov dword [esp + 0x2c], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x70], edx
mov edx, dword [edi + 0x60]
mov ecx, eax
shr ecx, 0x1f
and ebx, 1
test al, al
mov dword [esp + 0x30], edx
setne dl
add dl, 6
cmp ebp, 0x7f000000
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], ebx
mov byte [esp + 0x4c], dl
je 0x514c6e
push 0
push ebp
mov ecx, esi
call fcn.004f34a0
jmp 0x514cc0
fld dword [esp + 0x38]
lea ecx, [esp + 0x7c]
fsub dword [esi + 0x98]
fld dword [esp + 0x34]
fsub dword [esi + 0x94]
fld dword [esp + 0x2c]
fsub dword [esi + 0x90]
fstp dword [esp + 0x7c]
fstp dword [esp + 0x80]
fstp dword [esp + 0x84]
call fcn.0046a620
test eax, eax
jne 0x514cc0
lea ecx, [esp + 0x7c]
call fcn.004ab130
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
call fcn.004cd170
mov ecx, dword [esp + 0x14]
mov edx, dword [0x7a3a28]
push ecx
mov ecx, dword [edx + 0x8c]
call fcn.0059b6d0
test eax, eax
mov dword [esp + 0x18], eax
mov ecx, esi
je 0x514d57
call fcn.004efa80
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x18c], eax
jne 0x514d55
mov edx, ecx
mov ecx, dword [edx + 0x190]
mov edx, ecx
and edx, eax
cmp edx, ecx
jne 0x514d55
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x514d1a
mov ecx, dword [esi + 0xa74]
push eax
call fcn.005a6680
test al, al
jbe 0x514d55
cmp ebp, 0x7f000000
jne 0x514d30
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x528], eax
jmp 0x514d36
mov dword [esi + 0x528], ebp
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push ebp
call fcn.004ae750
cmp ebp, 0x7f000000
mov dword [esp + 0x10], eax
je 0x514d9a
test eax, eax
jne 0x514d9e
mov ecx, esi
call fcn.004ef450
mov ecx, esi
call fcn.004f7530
mov esi, dword [0x745dc4]
lea ecx, [esp + 0x68]
mov dword [esp + 0x90], 0xffffffff
call fcn.005e5c20
mov ecx, dword [esp + 0x88]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x84
ret 4
test eax, eax
je 0x514dda
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 0x30]
test eax, eax
je 0x514dda
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x94]
test eax, eax
jne 0x514d55
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov ecx, eax
call fcn.004ef890
test eax, eax
jne 0x514d55
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x514deb
push 1
mov ecx, esi
call fcn.004f87d0
cmp ebx, 1
jne 0x514eaf
mov ecx, dword [esi + 0x9c8]
xor edi, edi
push edi
push edi
push edi
push edi
push ebp
call fcn.004d5f70
mov ecx, dword [esi + 0x9c8]
push 0x7f000000
push ebx
call fcn.004d28f0
mov ecx, dword [esi + 0x9c8]
push edi
push 0x5dc
call fcn.004d2920
mov edx, dword [esi]
push 0x2719
mov ecx, esi
call dword [edx + 0x7c]
mov ecx, dword [esi + 0x9c8]
movzx eax, byte [ecx + 0x96c]
push eax
call fcn.004d2b50
push edi
push 4
push edi
push edi
push 0x5dc
push ebx
push ebp
mov ecx, esi
mov word [eax + 0x64], 0x1c
call fcn.005bba80
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
push edi
push edi
push edi
push edi
push 0x7f000000
push ecx
push ebp
lea edx, [esp + 0x98]
push edx
push eax
mov ecx, esi
mov dword [esi + 0x1cc], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
call fcn.004cdf50
mov dword [esi + 0x1cc], edi
mov esi, dword [0x745dc0]
jmp 0x514d69
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0xa8]
mov eax, dword [eax + 0xec]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x9c8]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x934]
test eax, eax
mov dword [esp + 0x34], edx
jne 0x515035
push ebp
call fcn.004d2c30
mov ecx, dword [esi + 0x9c8]
lea edx, [esp + 0x24]
push edx
push ebp
mov dword [esp + 0x2c], eax
call fcn.004d2d60
mov ecx, dword [esi + 0x9c8]
push 0
push 0
push eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
push eax
push ebp
call fcn.004d5f70
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x9c8]
push edx
push eax
call fcn.004d28b0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x9c8]
push eax
push 1
call fcn.004d28f0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [esi + 0x9c8]
add edx, eax
mov eax, dword [esp + 0x2c]
lea ebx, [edx + eax]
push 0
push ebx
call fcn.004d2920
mov ecx, dword [esi + 0x9c8]
push 0
push ebx
call fcn.004d3440
mov eax, dword [esp + 0x24]
test eax, eax
je 0x515008
mov eax, dword [esp + 0x10]
test eax, eax
je 0x515008
mov ecx, eax
mov edx, dword [ecx]
call dword [edx + 0x30]
test eax, eax
je 0x515008
cmp dword [esi + 4], ebp
je 0x515008
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x515104
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov ecx, dword [eax + 0x9c8]
mov edx, dword [esi + 4]
mov dword [esp + 0x10], eax
xor eax, eax
cmp dword [esp + 0x54], eax
push 0
sete al
push 0
push eax
mov eax, dword [esp + 0x30]
push eax
push edx
call fcn.004d5f70
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x9c8]
push eax
push 1
call fcn.004d28f0
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x9c8]
push 0
push ebx
call fcn.004d2920
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x9c8]
push 0
push ebx
call fcn.004d3440
jmp 0x515014
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x515104
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
push ebp
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004fb9e0
jmp 0x515104
mov eax, dword [ecx + 0x958]
test eax, eax
jne 0x515104
cmp dword [ecx + 0x968], 1
jge 0x515104
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.004d28b0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x9c8]
push eax
push 1
call fcn.004d28f0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [esi + 0x9c8]
add edx, eax
mov eax, dword [esp + 0x2c]
lea ebx, [edx + eax]
push 0
push ebx
call fcn.004d2920
mov ecx, dword [esi + 0x9c8]
push 0
push ebx
call fcn.004d3440
mov eax, dword [esi + 0x9c8]
mov ecx, dword [eax + 0x9b8]
test ecx, ecx
je 0x515104
mov eax, dword [esp + 0x10]
test eax, eax
je 0x515104
mov ecx, eax
mov edx, dword [ecx]
call dword [edx + 0x30]
test eax, eax
je 0x515104
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov edx, dword [eax + 4]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 0x9c8]
push edx
push 1
mov ecx, eax
call fcn.004d28f0
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x9c8]
push 0
push ebx
call fcn.004d2920
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x9c8]
push 0
push ebx
call fcn.004d3440
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x58]
push edx
lea edx, [esp + 0x60]
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 + 0x44]
push edx
mov edx, dword [esi + 0xc0]
lea eax, [esp + 0x68]
push eax
mov eax, dword [esi + 0xbc]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x6c]
push edx
push eax
call fcn.004aede0
mov ecx, eax
call fcn.004ae460
mov eax, dword [esp + 0x44]
test eax, eax
mov ebx, dword [esp + 0x3c]
jne 0x51519f
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x1c0], ecx
mov ecx, dword [esp + 0x70]
lea edx, [esi + 0x1b0]
mov dword [edx], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x78]
mov byte [esi + 0x1c4], bl
mov dword [esi + 0x1bc], ebp
mov dword [edx + 8], ecx
mov dword [esi + 0x1cc], eax
mov edx, dword [esp + 0x2c]
cmp eax, edx
jae 0x515223
mov edx, dword [esp + 0x18]
mov ax, word [edx + 0x44]
cmp ax, 3
jne 0x5151cc
mov eax, dword [esi]
push 0x2af8
mov ecx, esi
call dword [eax + 0x7c]
mov esi, dword [0x745dbc]
jmp 0x514d69
cmp ax, 2
jne 0x5151e9
mov edx, dword [esi]
push 0x2720
mov ecx, esi
call dword [edx + 0x7c]
mov esi, dword [0x745dbc]
jmp 0x514d69
cmp ax, 1
je 0x51520c
cmp ax, 7
jne 0x51520c
mov edx, dword [esi]
push 0x27b2
mov ecx, esi
call dword [edx + 0x7c]
mov esi, dword [0x745dbc]
jmp 0x514d69
mov eax, dword [esi]
push 0x271f
mov ecx, esi
call dword [eax + 0x7c]
mov esi, dword [0x745dbc]
jmp 0x514d69
cmp dword [edi + 0x70], 1
jne 0x51538b
mov eax, dword [esi + 0x9c8]
mov eax, dword [eax + 0x9b8]
xor ecx, ecx
test eax, eax
mov eax, dword [esp + 0x1c]
setne cl
test eax, eax
mov dword [edi + 0x70], ecx
jne 0x51534b
mov ecx, esi
call fcn.004cb120
test eax, eax
je 0x514d55
mov edx, dword [esp + 0x20]
cmp edx, 0xff
je 0x5152d5
mov eax, dword [esi + 0x960]
test eax, eax
jne 0x5152d5
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x51529d
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x28]
push eax
push ecx
push ebx
push edx
mov edx, dword [esp + 0x24]
push edx
mov ecx, esi
call fcn.004eddd0
test eax, eax
jne 0x5152c7
jmp 0x514d55
test ebx, ebx
jne 0x5152b7
mov ecx, dword [esi + 0xa74]
push edx
call fcn.005a4e90
mov ecx, dword [esp + 0x18]
push eax
call fcn.0059b650
mov eax, dword [esp + 0x28]
mov ecx, dword [0x7a3a28]
push eax
call fcn.00550b90
mov edx, dword [esp + 0x20]
mov dword [esi + 0x960], 1
mov ecx, dword [esi + 0x128]
xor eax, eax
test ecx, ecx
jle 0x51534f
mov ecx, dword [esi + 0x124]
mov edi, dword [0x7466c4]
lea ecx, [ecx]
mov ebx, dword [ecx]
movzx ebx, word [ebx + 8]
cmp ebx, edi
je 0x51530a
mov ebx, dword [esi + 0x128]
inc eax
add ecx, 4
cmp eax, ebx
jl 0x5152f0
jmp 0x51534f
mov edx, dword [esi]
push 0x2711
mov ecx, esi
call dword [edx + 0x7c]
mov eax, dword [0x746644]
push 0
push eax
mov ecx, esi
call fcn.004f34a0
mov eax, dword [esp + 0x50]
test eax, eax
mov dword [esi + 0x960], 0
jne 0x514d55
push 0
push 0x41
mov ecx, esi
call fcn.004ede10
jmp 0x514d55
mov edx, dword [esp + 0x20]
mov al, byte [esp + 0x28]
mov edi, dword [esp + 0x48]
mov byte [esi + 0x1d4], dl
mov ecx, dword [0x746644]
mov edx, dword [esp + 0x40]
mov dword [esi + 0x95c], ecx
push edi
mov ecx, esi
mov dword [esi + 0x1d0], edx
mov byte [esi + 0x1d5], al
call fcn.004cb9e0
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
jmp 0x51538f
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
lea ebx, [ecx + edx]
cmp eax, ebx
jb 0x515445
mov ebx, dword [esi + 0x1cc]
test ebx, ebx
je 0x515445
mov edi, dword [esp + 0x38]
add edi, ecx
add edi, edx
cmp eax, edi
jae 0x5153ef
mov ecx, dword [esp + 0x18]
cmp word [ecx + 0xf0], 0
jne 0x5153d2
mov edx, dword [esi]
push 0x27b1
mov ecx, esi
call dword [edx + 0x7c]
mov ecx, esi
mov dword [esi + 0x960], 0
call fcn.004f7530
mov ecx, esi
call fcn.004ef450
jmp 0x514d63
mov edi, dword [esi]
mov ecx, esi
call fcn.004f0f90
push eax
mov ecx, esi
call dword [edi + 0x7c]
mov eax, dword [0x746644]
push 0
push eax
mov ecx, esi
call fcn.004f34a0
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
mov dword [esi + 0x960], 0
je 0x51542c
mov ecx, dword [esi + 0xa74]
push eax
call fcn.005a6720
mov ecx, esi
call fcn.004ef450
mov ecx, esi
call fcn.004f7530
mov esi, dword [0x745dc0]
jmp 0x514d69
mov ecx, dword [esp + 0x18]
mov ax, word [ecx + 0xa6]
cmp ax, 2
jne 0x515464
mov edx, dword [esi]
push 0x2722
mov ecx, esi
call dword [edx + 0x7c]
jmp 0x5154be
cmp ax, 1
jne 0x515471
push 0x2721
jmp 0x5154b7
cmp ax, 3
jne 0x515485
mov edx, dword [esi]
push 0x2723
mov ecx, esi
call dword [edx + 0x7c]
jmp 0x5154be
cmp ax, 4
jne 0x515492
push 0x2724
jmp 0x5154b7
cmp ax, 7
jne 0x5154a6
mov edx, dword [esi]
push 0x274d
mov ecx, esi
call dword [edx + 0x7c]
jmp 0x5154be
cmp ax, 8
je 0x5154be
cmp ax, 9
je 0x5154be
push 0x274d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x7c]
mov eax, dword [esi + 0x1cc]
test eax, eax
jne 0x5155a5
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x515569
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push ebp
call fcn.004ae750
test eax, eax
je 0x515522
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x10]
test eax, eax
je 0x515522
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 4]
push 0
push 0
push edi
push 0
push edx
mov edx, dword [esp + 0x60]
push edx
mov edx, dword [esi + 0x1c8]
push edx
add eax, 0x90
push eax
lea eax, [esi + 0x90]
push eax
push ebp
push ecx
jmp 0x51554d
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 4]
push 0
push 0
push edi
push 0
push ecx
mov ecx, dword [esi + 0x1c8]
push edx
push ecx
lea edx, [esi + 0x1b0]
push edx
lea ecx, [esi + 0x90]
push ecx
push ebp
push eax
mov ecx, esi
call fcn.004cdd30
mov dword [esi + 0x1cc], 1
mov esi, dword [0x745dbc]
jmp 0x514d69
mov edx, dword [esp + 0x50]
mov eax, dword [esi + 0x9c8]
mov ecx, dword [eax + 0x968]
push edx
mov edx, dword [esp + 0x18]
push edi
push 0
push 0
inc ecx
mov dword [eax + 0x968], ecx
mov eax, dword [esp + 0x30]
push 0x7f000000
push eax
push ebp
lea ecx, [esp + 0x8c]
push ecx
push edx
mov ecx, esi
call fcn.004cdf50
mov esi, dword [0x745dbc]
jmp 0x514d69