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

Disassembly:
sub esp, 0x29c
mov eax, dword [0x778f48]
xor eax, esp
mov dword [esp + 0x294], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2a0]
push ebx
mov dword [esp + 0x38], eax
xor ebx, ebx
mov eax, dword [esp + 0x2ac]
push ebp
mov ebp, dword [esp + 0x2c0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2bc]
push esi
push edi
mov edi, dword [esp + 0x2d4]
mov esi, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x290], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
call fcn.00559d4d
test eax, eax
jne 0x55a480
mov ecx, ebx
mov dword [esp + 0x30], ebx
cmp dword [esi], ebx
jbe 0x55a47e
test edi, edi
je 0x559f7c
mov ecx, edi
call dword [0x68a308]
call edi
test eax, eax
jne 0x55a291
mov ecx, dword [esp + 0x30]
imul ebx, ecx, 0xc
mov eax, dword [ebx + esi + 0x3c]
test eax, eax
je 0x55a298
cmp eax, 0x21
je 0x55a298
cmp eax, 0x30101
je 0x55a298
cmp eax, 0x303011b
jne 0x55a146
cmp ecx, 3
jne 0x55a4a7
mov ecx, dword [esp + 0x2b4]
mov edi, dword [ecx + 0x10]
mov ebp, dword [ecx + 8]
sub edi, ebp
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x14]
sbb ebx, eax
mov dword [esp + 0x14], eax
xor eax, eax
cmp eax, ebx
jne 0x55a499
mov eax, dword [esp + 0x28]
push edi
push eax
mov esi, dword [eax]
mov ecx, esi
call dword [0x68a308]
call esi
mov esi, dword [esp + 0x40]
pop ecx
pop ecx
mov dword [esi + 8], eax
test eax, eax
jne 0x559fff
test edi, edi
jne 0x55a499
add ebp, dword [esp + 0x2bc]
mov eax, dword [esp + 0x14]
adc eax, dword [esp + 0x2c0]
push eax
push ebp
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
call fcn.0055968b
pop ecx
pop ecx
test eax, eax
jne 0x55a480
push dword [esp + 0x18]
mov edx, dword [esi + 8]
mov ecx, ebp
push ebx
push edi
call fcn.00559c64
add esp, 0xc
test eax, eax
jne 0x55a480
mov ecx, dword [esp + 0x28c]
test cl, 3
jne 0x55a4a2
mov edx, dword [esp + 0x290]
test dl, 3
jne 0x55a4a2
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
lea eax, [ebx + edx]
add eax, ecx
cmp eax, ebp
jne 0x55a4a2
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
add eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
add eax, ecx
mov dword [esp + 0x5c], eax
mov ecx, 0x81
mov eax, dword [esi + 4]
mov dword [esp + 0x50], eax
add eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x54], eax
add eax, edi
mov dword [esp + 0x64], eax
lea edi, [esp + 0x84]
lea eax, [ebx + ebp]
mov dword [esp + 0x68], ebx
xor ebx, ebx
mov dword [esp + 0x6c], eax
mov eax, 0x4000400
mov dword [esp + 0x70], 3
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.0055cbd3
test eax, eax
jne 0x55a480
mov ecx, ebx
mov eax, dword [esp + ecx*4 + 0x48]
cmp eax, dword [esp + ecx*4 + 0x58]
jne 0x55a4a2
inc ecx
cmp ecx, 4
jb 0x55a104
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x6c]
jne 0x55a4a2
cmp dword [esp + 0x70], ebx
jne 0x55a4a2
cmp dword [esp + 0x80], ebx
jne 0x55a4a2
mov esi, dword [esp + 0x1c]
jmp 0x55a46d
cmp ecx, 1
jne 0x55a4a7
mov cl, byte [ebx + esi + 0x41]
cmp eax, 3
jne 0x55a19f
cmp cl, 1
jne 0x55a4a7
xor eax, eax
push 0x100
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00627f90
mov eax, dword [ebx + esi + 0x38]
mov ecx, dword [esp + 0x38]
push edi
push ebp
push dword [esp + 0x24]
movzx edx, byte [eax + ecx]
lea ecx, [esp + 0x60]
inc edx
call fcn.0055d2d2
add esp, 0x18
test eax, eax
jne 0x55a480
jmp 0x55a46d
cmp eax, 0xa
jne 0x55a1d2
xor eax, eax
cmp cl, 4
jne 0x55a1b8
mov eax, dword [ebx + esi + 0x38]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax]
jmp 0x55a1c0
test cl, cl
jne 0x55a4a7
mov ecx, dword [esp + 0x10]
mov edx, ebp
push eax
call fcn.0055a74b
pop ecx
jmp 0x55a46d
test cl, cl
jne 0x55a4a7
cmp eax, 0x3030103
je 0x55a251
cmp eax, 0x3030205
je 0x55a240
cmp eax, 0x3030401
je 0x55a232
cmp eax, 0x3030501
je 0x55a224
cmp eax, 0x3030701
je 0x55a216
cmp eax, 0x3030805
jne 0x55a4a7
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0055a88b
jmp 0x55a1cc
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0055a8cf
jmp 0x55a1cc
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0055a7fe
jmp 0x55a1cc
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0055a95c
jmp 0x55a1cc
push ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
call fcn.0055a847
jmp 0x55a1cc
xor eax, eax
mov edx, ebp
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push edi
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0055ca75
add esp, 0xc
cmp dword [esp + 0x14], 1
jne 0x55a46d
test edi, edi
je 0x55a46d
mov ecx, edi
call dword [0x68a308]
call edi
test eax, eax
je 0x55a46d
push 0x12
jmp 0x55a49f
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, eax
mov esi, ecx
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov dword [esp + 0x34], edx
cmp dword [eax], 4
jne 0x55a36a
mov esi, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x2a0], eax
mov ebp, esi
mov eax, dword [esp + 0x44]
shl ebp, 2
mov dword [esp + 0x298], 3
mov dword [esp + 0x29c], 2
mov edi, dword [eax + esi*8]
mov edx, dword [esp + ebp + 0x298]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x34], edx
cmp esi, 2
jae 0x55a33e
xor esi, esi
cmp esi, eax
jne 0x55a499
mov eax, dword [esp + 0x28]
push edi
push eax
mov esi, dword [eax]
mov ecx, esi
call dword [0x68a308]
call esi
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x55a324
test edi, edi
jne 0x55a499
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
sub eax, ebp
mov dword [eax + 4], esi
lea eax, [esp + 0x290]
sub eax, ebp
mov dword [eax], edi
jmp 0x55a36a
jne 0x55a4a7
xor esi, esi
cmp eax, esi
ja 0x55a49d
mov eax, dword [esp + 0x20]
jb 0x55a35c
cmp edi, eax
ja 0x55a49d
mov esi, ecx
mov dword [esp + 0x40], edi
sub esi, edi
add esi, eax
mov dword [esp + 0x3c], esi
mov ebp, dword [esp + 0x2b4]
mov ecx, dword [ebp + edx*8]
mov eax, dword [ebp + edx*8 + 4]
mov edx, dword [ebp + edx*8 + 8]
mov ebp, dword [esp + 0x34]
sub edx, ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2b4]
mov ebp, dword [edx + ebp*8 + 0xc]
sbb ebp, eax
add ecx, dword [esp + 0x2bc]
adc eax, dword [esp + 0x2c0]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0055968b
pop ecx
pop ecx
test eax, eax
jne 0x55a480
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax + 0x3c]
test eax, eax
jne 0x55a3fc
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x55a4a2
xor ecx, ecx
cmp ebp, ecx
jne 0x55a4a2
mov edi, dword [esp + 0x18]
mov edx, esi
mov ecx, dword [esp + 0x24]
push edi
push ebp
push eax
call fcn.00559c64
add esp, 0xc
test eax, eax
jne 0x55a480
mov esi, dword [esp + 0x1c]
jmp 0x55a469
cmp eax, 0x30101
jne 0x55a42f
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
push dword [esp + 0x2c]
push edi
push esi
mov esi, dword [esp + 0x2c]
push dword [esp + 0x34]
push ebp
mov ecx, dword [ebx + esi + 0x38]
movzx edx, byte [ebx + esi + 0x41]
add ecx, dword [esp + 0x44]
push eax
call fcn.005598d0
jmp 0x55a45e
cmp eax, 0x21
jne 0x55a4a7
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
push dword [esp + 0x2c]
push edi
push esi
mov esi, dword [esp + 0x2c]
push dword [esp + 0x34]
push ebp
mov ecx, dword [ebx + esi + 0x38]
movzx edx, byte [ebx + esi + 0x41]
add ecx, dword [esp + 0x44]
push eax
call fcn.00559a8b
add esp, 0x1c
test eax, eax
jne 0x55a480
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [esi]
jb 0x559f62
xor eax, eax
mov ecx, dword [esp + 0x2a4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.006109fe
add esp, 0x29c
ret
push 2
jmp 0x55a49f
push 5
pop eax
jmp 0x55a480
xor eax, eax
inc eax
jmp 0x55a480
push 4
jmp 0x55a49f