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

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
mov esi, dword [esp + 0x34]
mov edx, dword [esi]
push edi
xor ebx, ebx
lea eax, [esp + 0x24]
mov edi, 0x837188
mov ecx, esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebp
call dword [edx + 0x30]
cmp eax, 0xc
mov edx, dword [esi]
mov ecx, esi
jne 0x559035
lea eax, [esp + 0x10]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
call dword [edx + 0x158]
mov edx, eax
sub edx, 0xc
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x3c], edx
lea ebx, [esi + 0x78]
je 0x558fa9
mov esi, dword [ebx]
mov eax, dword [esi + 4]
test eax, eax
mov edi, ebx
je 0x558f1a
lea ebx, [ebx]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x20]
push edx
push ecx
call fcn.00558d90
add esp, 0xc
test eax, eax
je 0x558f0b
mov ecx, dword [ebx + 8]
mov edx, dword [edi]
mov eax, dword [edx]
dec ecx
mov dword [ebx + 8], ecx
jne 0x558efd
mov dword [ebx + 4], ebx
jmp 0x558f07
mov ecx, dword [ebx + 4]
cmp ecx, dword [edi]
jne 0x558f07
mov dword [ebx + 4], edi
mov dword [edi], eax
mov esi, edi
mov edi, esi
mov esi, dword [esi]
mov eax, dword [esi + 4]
test eax, eax
jne 0x558ed0
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
mov esi, dword [edi + 4]
test esi, esi
je 0x558f5d
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x154]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov ecx, esi
call fcn.0040b1cc
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x558f4e
mov ecx, eax
mov dword [esp + 0x1c], ecx
mov edi, dword [edi]
mov esi, dword [edi + 4]
test esi, esi
jne 0x558f25
mov edx, dword [esp + 0x3c]
jmp 0x558f61
mov ecx, dword [esp + 0x1c]
test ebp, ebp
mov eax, ecx
je 0x558f7e
cmp dword [ebp], ecx
jae 0x558f7e
lea esp, [esp]
mov dword [ebp], eax
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x558f70
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
add eax, 0x90
mov esi, eax
mov dword [esi], ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x10], ecx
mov ebp, eax
mov edi, dword [ebx]
mov esi, dword [edi + 4]
test esi, esi
je 0x558fd5
mov edx, dword [esp + 0x34]
push ebp
push esi
push edx
call fcn.00558e50
add esp, 0xc
cmp eax, esi
je 0x558fc8
mov dword [edi + 4], eax
mov edi, dword [edi]
mov esi, dword [edi + 4]
test esi, esi
jne 0x558fb2
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x5591bd
mov eax, dword [esp + 0x10]
cmp eax, 0x837188
je 0x559000
mov ecx, dword [ebx + 4]
mov dword [ecx], eax
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ecx, eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], ecx
mov eax, dword [esp + 0x24]
cmp eax, 0x837188
je 0x5591bd
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x38]
mov dword [ecx], eax
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
pop edi
add ecx, eax
mov eax, esi
pop esi
pop ebp
mov dword [ebx + 4], edx
mov dword [ebx + 8], ecx
pop ebx
add esp, 0x20
ret
call dword [edx + 0x30]
cmp eax, 1
jne 0x5591c1
lea ecx, [esp + 0x10]
lea eax, [esp + 0x10]
push ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x20]
push edx
push eax
mov eax, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], edi
call fcn.00558d90
add esp, 0xc
test eax, eax
je 0x55918d
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
lea eax, [edx + ecx]
cmp eax, ebx
jne 0x5590ad
push 0x50
call fcn.0040105a
add esp, 4
cmp eax, ebx
je 0x5590a3
push 1
push ebx
push 1
mov ecx, eax
call fcn.00408747
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
cmp eax, 1
jne 0x5590f0
lea ecx, [esp + 0x24]
call fcn.0040b677
mov esi, eax
cmp esi, ebx
je 0x5590df
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x154]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x8c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
lea ecx, [esp + 0x10]
call fcn.00401fa5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
push 0xa8
call fcn.0040105a
add esp, 4
cmp eax, ebx
je 0x55910f
lea ecx, [esp + 0x10]
push ecx
mov ecx, eax
call fcn.00405e61
mov ebx, eax
mov byte [ebx + 0x36], 1
mov edi, dword [esp + 0x24]
mov esi, dword [edi + 4]
test esi, esi
lea ebp, [ebx + 0x78]
je 0x55914f
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x154]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov ecx, esi
call fcn.0040b1cc
cmp dword [esp + 0x1c], eax
jae 0x559146
mov dword [esp + 0x1c], eax
mov edi, dword [edi]
mov esi, dword [edi + 4]
test esi, esi
jne 0x559121
mov edx, dword [esp + 0x1c]
lea ecx, [ebx + 0x90]
mov dword [ecx], edx
mov eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x24]
mov dword [ecx + 8], edx
mov eax, dword [esp + 0x28]
mov dword [ecx + 0xc], eax
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x24]
mov dword [ecx + 0x10], edx
push eax
mov ecx, ebp
call fcn.0040baa5
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x20
ret
mov edx, dword [esi]
push ebp
push 0x403382
lea eax, [esp + 0x44]
push eax
push 0x4033a5
mov ecx, esi
mov dword [esp + 0x4c], 1
call dword [edx + 0xdc]
mov edx, dword [eax]
mov ecx, eax
mov dword [esp + 0x38], eax
call dword [edx + 0x8c]
mov esi, dword [esp + 0x38]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret