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

Disassembly:
mov ecx, dword [0x6c4e70]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x51945c
sub esp, 0xac
mov eax, dword [esp + 0xb8]
cmp eax, 0x12
jge 0x5188ae
xor ecx, ecx
jmp 0x5188dd
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
lea ecx, [0x589c3c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x12
call fcn.00403360
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xb8]
test cl, cl
jne 0x5188ed
mov ecx, dword [esp + 0xb4]
jmp 0x51897c
mov ecx, dword [0x69fdc8]
lea edx, [0x562ae0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.0040f8e0
movzx eax, byte [esp + 0x14]
test al, al
je 0x518928
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x51897c
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x12
jb 0x519451
mov dword [esp], 0
lea eax, [0x5863ef]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
lea eax, [ecx - 0x12]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 0x12
mov edx, dword [esp + 0xb4]
add eax, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044cfa0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc4]
test edx, edx
je 0x519272
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], ecx
mov ebx, edx
and edx, 0x1f
nop
cmp edx, 0x16
jne 0x5189d4
test ebx, 0x200
je 0x5189af
mov edx, dword [esp + 0xc0]
jmp 0x5189db
test ebx, 0x80
je 0x5189c2
mov edx, dword [esp + 0xc0]
mov ebp, dword [edx]
jmp 0x5189cb
mov edx, dword [esp + 0xc0]
mov ebp, edx
test ebp, ebp
jne 0x5189db
jmp 0x519272
mov edx, dword [esp + 0xc0]
nop
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 1
call fcn.00487f10
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5191c4
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x10]
cmp eax, 0x8cac3de9
ja 0x518ac2
cmp eax, 0x4ffadaa
jne 0x518a62
lea eax, [0x576c00]
cmp ecx, eax
jne 0x518d17
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], eax
call fcn.0051b460
add esp, 0xac
ret
cmp eax, 0x8cac3de9
jne 0x518d17
lea eax, [0x583ea0]
cmp ecx, eax
jne 0x518d17
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14], eax
call fcn.0051ad30
add esp, 0xac
ret
cmp eax, 0x8ed6f7a2
jne 0x518b22
lea eax, [0x584cc0]
cmp ecx, eax
jne 0x518d17
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 8], eax
call fcn.00487840
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.0051ad30
add esp, 0xac
ret
cmp eax, 0x91392b9f
jne 0x518c57
lea eax, [0x579580]
cmp ecx, eax
jne 0x518d17
mov eax, dword [esp + 0xc4]
test eax, 0x100
je 0x518b5c
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
jmp 0x518c19
test eax, 0x200
jne 0x518b72
lea ecx, [0x5c13b8]
mov edx, dword [esp + 0xbc]
jmp 0x518b9c
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
mov edx, dword [esp + 0xc0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0048b360
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00487840
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x54], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x14], ebx
call fcn.00489770
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00484be0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0051b460
add esp, 0xac
ret
cmp eax, 0xa21e82eb
jne 0x518d17
lea eax, [0x5794a0]
cmp ecx, eax
jne 0x518d17
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.004a03e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
lea eax, [0x560820]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
test eax, eax
je 0x518cdf
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x518cd6
or ecx, 0x80
mov edx, dword [esp + 0x84]
jmp 0x518ce5
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.0051a250
add esp, 0xac
ret
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], eax
lea edx, [0x565d60]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004098b0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x518e7e
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5193f5
mov eax, dword [esp + 4]
test eax, eax
je 0x518dd0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x78]
test eax, eax
je 0x518d98
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x518d92
or ecx, 0x80
mov edx, dword [esp + 0x7c]
jmp 0x518d9e
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.00518880
add esp, 0xac
ret
nop
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
lea eax, [0x586705]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.0051b040
add esp, 0xac
ret
lea eax, [0x565e80]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
call fcn.004098b0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x518ec1
lea ecx, [0x560820]
mov ebx, dword [esp + 0xc4]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
jmp 0x518f32
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x5193af
mov dword [esp], 0
call fcn.0044d240
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409580
mov eax, dword [esp + 8]
lea ecx, [0x560820]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x70]
test edx, edx
je 0x518f2c
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x518f32
or ebx, 0x80
jmp 0x518f32
xor ebx, ebx
xor edx, edx
xor eax, eax
mov ebp, ebx
and ebx, 0x1f
nop
cmp ebx, 0x11
ja 0x51902f
cmp ebx, 6
ja 0x518fb4
cmp ebx, 1
je 0x518f84
cmp ebx, 2
jb 0x519320
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0051aa10
jmp 0x5191bd
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0051a900
jmp 0x5191bd
cmp ebx, 0xc
jbe 0x518fff
lea esi, [ebx - 0xd]
cmp esi, 1
jbe 0x518fcf
cmp ebx, 0x11
je 0x51912a
jmp 0x519320
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0051ae90
jmp 0x5191bd
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0051aba0
jmp 0x5191bd
cmp ebx, 0x16
ja 0x519125
cmp ebx, 0x14
je 0x5190f1
cmp ebx, 0x15
je 0x519083
cmp ebx, 0x16
jne 0x519320
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.00487840
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.00518880
jmp 0x5191bd
mov dword [esp + 0x5c], eax
lea edi, [esp + 0x98]
xor eax, eax
call fcn.004610eb
lea ecx, [0x519470]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebp
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xa8], ecx
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0xc], ecx
call fcn.00519d30
jmp 0x5191bd
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.00487840
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.00518880
jmp 0x5191bd
cmp ebx, 0x17
jne 0x519157
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00519ed0
jmp 0x5191bd
cmp ebx, 0x18
je 0x519192
cmp ebx, 0x19
jne 0x519320
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.005196e0
jmp 0x5191bd
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0051a250
add esp, 0xac
ret
nop
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
lea eax, [0x586705]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.0051b040
add esp, 0xac
ret
nop
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
lea eax, [0x586705]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.0051b040
add esp, 0xac
ret
test ebp, ebp
je 0x519395
test ebp, 0x200
jne 0x519395
lea eax, [0x5c13b8]
mov eax, dword [eax + 0x80]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x58ae61]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044cfa0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409580
mov eax, dword [esp + 8]
lea ecx, [0x560820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435490
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0048a890
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x519332
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
nop
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
lea eax, [0x5673c0]
mov dword [esp], eax
lea ecx, [esp + 0x90]
mov dword [esp + 4], ecx
call fcn.004093b0
mov eax, dword [esp + 8]
lea ecx, [0x5673c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435490
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
nop
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
lea eax, [0x5673c0]
mov dword [esp], eax
lea ecx, [esp + 0x90]
mov dword [esp + 4], ecx
call fcn.004093b0
mov eax, dword [esp + 8]
lea ecx, [0x5673c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435490
mov eax, 0x12
call fcn.00460fc0
nop
call fcn.0045faf0
jmp fcn.00518880