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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xd0]
cmp eax, dword [ecx + 8]
jbe 0x557209
sub esp, 0x150
mov eax, 0
lea edi, [esp + 0x13c]
call fcn.0045cbbb
mov byte [esp + 0x2f], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov ecx, dword [esp + 0x154]
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x5571c7
mov byte [ecx + 0x30], 0
mov dword [esp], ecx
call fcn.00555cd0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], ebp
test ecx, ecx
jne 0x5571c0
mov dword [esp + 0x34], edx
mov dword [esp + 0x64], ebx
mov ecx, dword [eax + 0x40]
mov ebp, dword [eax + 0x44]
mov esi, dword [esp + 0x154]
mov dword [esi + 0x68], ebp
mov ebp, dword [0x7e34e0]
test ebp, ebp
jne 0x5571ad
mov dword [esi + 0x64], ecx
mov dword [esp + 0x60], eax
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00557220
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x68], ebx
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x48], edi
test ecx, ecx
je 0x55719e
test eax, eax
je 0x55719e
lea edi, [0x69263c]
mov dword [esp + 0x144], edi
lea edi, [esp + 0x158]
mov dword [esp + 0x140], edi
mov edi, dword [esp + 0x154]
mov dword [esp + 0x13c], edi
mov dword [esp + 0x148], edx
mov dword [esp + 0x14c], ecx
mov byte [esp + 0x2f], 1
mov dword [esp + 0x54], eax
mov eax, 1
mov byte [esp + 0x2e], al
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.0055f570
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x154]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.005536b0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
je 0x556b9d
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x556b64
add esp, 0x150
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x556b5d
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.00553790
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ebx
test eax, eax
je 0x556c18
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x556bdf
add esp, 0x150
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x556bd8
lea eax, [0x64f580]
cmp eax, ecx
jne 0x557192
mov ebx, edx
mov dword [esp + 0x78], edx
jne 0x557094
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00558110
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x556ca9
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x556c70
add esp, 0x150
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x556c69
mov eax, dword [esp + 0x154]
mov ecx, dword [eax + 0x28]
mov dword [esp], ecx
call fcn.0054d060
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x55708c
xor eax, eax
mov edx, dword [esp + 0x78]
mov ebx, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
mov ebp, dword [edx + 0x18]
cmp ecx, 0x18
jb 0x5571f2
add ebp, 0xffffffe8
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 0x18
lea esi, [ebx + ebp]
cmp ecx, 0x20
jne 0x557080
cmp dword [esi], 0x4e574f44
jne 0x55707d
mov edi, edx
lea edx, [ebx + ebp + 4]
cmp dword [edx], 0x1445247
sete dl
cmp ecx, 0x20
jne 0x557076
cmp dword [esi], 0x4e574f44
jne 0x557076
lea ecx, [ebx + ebp + 4]
cmp dword [ecx], 0x445247
sete cl
cmp ax, 0x304
jne 0x55706a
mov ebx, dword [esp + 0x154]
cmp word [ebx + 0x24], 0x303
ja 0x556df4
test dl, dl
je 0x556dec
mov dword [esp], ebx
mov byte [esp + 4], 0x2f
call fcn.00552d50
lea eax, [0x64d2c0]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x54
lea ecx, [0x68c750]
mov dword [eax], ecx
lea ecx, [0x6cadb0]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], eax
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x556db3
add esp, 0x150
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x556dac
test cl, cl
jne 0x556d60
cmp ax, 0x303
jne 0x556e0a
cmp word [ebx + 0x24], 0x302
ja 0x556e0a
test cl, cl
jne 0x556d60
cmp word [ebx + 0x24], 0x304
jne 0x556f13
lea edi, [esp + 0xe0]
xor eax, eax
call fcn.0045cba9
mov dword [esp + 0xe0], ebx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x100], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10c], ecx
lea ecx, [esp + 0xe0]
mov dword [esp], ecx
call fcn.0055be20
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], edx
movzx ecx, byte [esp + 0x2e]
test cl, 1
jne 0x556eda
add esp, 0x150
ret
and ecx, 0xfffffffe
mov byte [esp + 0x2f], cl
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x556ed3
lea edi, [esp + 0x8c]
xor eax, eax
call fcn.0045cbab
mov dword [esp + 0x8c], ebx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xdc], ecx
lea edx, [esp + 0x8c]
mov dword [esp], edx
call fcn.00558250
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test ecx, ecx
je 0x556fbc
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], edx
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x556f83
add esp, 0x150
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x556f7c
mov eax, dword [esp + 0x40]
test eax, eax
je 0x556fd7
mov ecx, dword [esp + 0xdc]
test ecx, ecx
je 0x556fd7
mov edx, dword [esp + 0x5c]
cmp edx, ecx
jne 0x557037
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x556ffe
add esp, 0x150
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x556ff7
mov edx, dword [esp + 0x154]
mov edx, dword [edx + 0x28]
mov ebx, dword [edx + 0x84]
mov edx, dword [edx + 0x88]
mov ebx, dword [ebx + 0x14]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call ebx
jmp 0x556fd7
mov ebx, dword [esp + 0x154]
jmp 0x556df4
xor ecx, ecx
jmp 0x556d3b
cmp ecx, 0x20
mov edi, edx
mov edx, 0
jmp 0x556d1c
movzx eax, word [ecx]
jmp 0x556ccd
mov dword [esp + 0x74], ebx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00552d50
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x80], eax
lea eax, [0x64f580]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], eax
lea eax, [0x68c0e7]
mov dword [esp], eax
mov dword [esp + 4], 0x49
lea eax, [esp + 0x7c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004abbc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x557159
add esp, 0x150
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0056b7c0
jmp 0x557152
mov ebx, edx
mov edx, 0
jmp 0x556c28
mov dword [esp + 0x4c], eax
xor eax, eax
mov byte [esp + 0x2e], al
jmp 0x556b01
lea edi, [esi + 0x64]
mov ebp, eax
mov eax, ecx
call fcn.0045c920
mov eax, ebp
jmp 0x556a50
add esp, 0x150
ret
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x5571df
lea eax, [0x7cd9e0]
mov dword [ecx + 0x28], eax
jmp 0x5569f1
lea edi, [ecx + 0x28]
lea eax, [0x7cd9e0]
call fcn.0045c920
jmp 0x5569f1
mov eax, 0x18
call fcn.0045ca00
nop
call fcn.004312b0
add esp, 0x150
ret
call fcn.0045b380
jmp fcn.00556990