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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x8c]
mov eax, dword [esi + 0x40]
cmp eax, 2
push edi
mov ecx, 0xffffff7d
jl 0x55e9c4
mov eax, dword [esi + 4]
test eax, eax
je 0x55e9c4
mov eax, dword [esi + 0x1c]
cmp eax, 0xffffffff
jle 0x55e9c4
xor ebx, ebx
xor ebp, ebp
xor edi, edi
test eax, eax
jle 0x55e9ba
push edi
push esi
call fcn.0055e570
add esp, 8
add ebx, eax
mov eax, dword [esi + 0x1c]
adc ebp, edx
inc edi
cmp edi, eax
jl 0x55e9a4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebp
jmp 0x55e9d6
mov dword [esp + 0x20], 0xffffffff
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ebx, ecx
mov eax, dword [esi + 0x40]
xor edx, edx
cmp eax, 2
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
jl 0x55f0ef
cmp dword [esi + 4], edx
jne 0x55ea2f
pop edi
pop esi
pop ebp
mov eax, 0xffffff76
pop ebx
add esp, 0x7c
ret
mov ecx, dword [esp + 0x98]
cmp ecx, edx
jl 0x55f0ef
mov eax, dword [esp + 0x94]
jg 0x55ea4f
cmp eax, edx
jb 0x55f0ef
cmp ecx, ebp
jg 0x55f0ef
jl 0x55ea61
cmp eax, ebx
ja 0x55f0ef
mov ecx, dword [esi + 0x1c]
dec ecx
mov dword [esp + 0x10], ecx
js 0x55eaa8
mov edi, dword [esi + 0x2c]
mov eax, ecx
shl eax, 4
lea eax, [edi + eax + 8]
mov edi, dword [eax]
sub ebx, edi
mov edi, dword [eax + 4]
sbb ebp, edi
cmp dword [esp + 0x98], ebp
jg 0x55ea9c
jl 0x55ea94
cmp dword [esp + 0x94], ebx
jae 0x55ea9c
dec ecx
sub eax, 0x10
cmp ecx, edx
jge 0x55ea77
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebx
mov edx, dword [esi + 0x20]
mov ebx, dword [edx + ecx*8 + 0xc]
mov ebp, dword [edx + ecx*8 + 4]
lea eax, [edx + ecx*8]
mov edx, dword [eax + 8]
shl ecx, 4
mov dword [esp + 0x24], edx
mov edx, dword [eax]
mov eax, dword [esi + 0x2c]
mov edi, dword [eax + ecx]
add eax, ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
add edx, edi
adc eax, ecx
mov dword [esp + 0x50], eax
mov eax, edi
mov dword [esp + 0x44], edi
sub eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
sbb ecx, edx
mov edx, dword [esp + 0x98]
add eax, edi
adc ecx, edx
cmp ebp, ebx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ebp
jg 0x55ede4
jl 0x55eb40
mov edx, dword [esp + 0x24]
mov eax, ecx
cmp eax, edx
jae 0x55ede4
lea esp, [esp]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
sub ecx, ebx
sbb eax, ebp
test eax, eax
jg 0x55eb66
jl 0x55eb5e
cmp ecx, 0x400
jae 0x55eb66
mov ebx, dword [esp + 0x2c]
mov edi, ebp
jmp 0x55ebc7
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub edx, edi
sbb ebx, dword [esp + 0x48]
push eax
push ecx
push ebx
push edx
call fcn.00567a80
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
sub ecx, edi
mov edi, dword [esp + 0x50]
sbb edi, ebx
push edi
push ecx
push edx
push eax
call fcn.00478ad0
mov ecx, dword [esp + 0x2c]
mov ebx, eax
add ebx, ecx
mov edi, edx
adc edi, ebp
sub ebx, 0x400
sbb edi, 0
cmp edi, ebp
jg 0x55ebc7
jl 0x55ebbb
mov eax, ecx
cmp ebx, eax
ja 0x55ebc7
mov ebx, dword [esp + 0x2c]
add ebx, 1
mov edi, ebp
adc edi, 0
mov eax, dword [esi]
test eax, eax
je 0x55ebf0
push 0
push edi
push ebx
push eax
call dword [esi + 0x11c]
mov edx, dword [esi + 0x18]
push edx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], edi
call fcn.005604b0
add esp, 0x14
lea ebx, [ebx]
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0xc]
sub eax, ecx
mov ecx, dword [esp + 0x28]
sbb ecx, edx
push ecx
push eax
lea edx, [esp + 0x64]
push edx
call fcn.0055d600
add esp, 0xc
cmp eax, 0xffffff80
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jne 0x55ec29
mov eax, edx
cmp eax, 0xffffffff
je 0x55f0a7
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x55ec9a
jl 0x55ec3b
mov eax, dword [esp + 0x14]
test eax, eax
jae 0x55ec9a
mov ecx, dword [esp + 0x2c]
add ecx, 1
mov eax, ebp
adc eax, 0
cmp edi, eax
jl 0x55ede4
jg 0x55ec59
cmp ebx, ecx
jbe 0x55ede4
mov edx, ebx
or edx, edi
je 0x55f0a7
add ebx, 0xfffffc00
adc edi, 0xffffffff
cmp edi, ebp
jg 0x55ec7c
jl 0x55ec78
cmp ebx, dword [esp + 0x2c]
ja 0x55ec7c
mov ebx, ecx
mov edi, eax
mov eax, dword [esi]
test eax, eax
je 0x55ed97
push 0
push edi
push ebx
push eax
call dword [esi + 0x11c]
mov eax, dword [esi + 0x18]
push eax
jmp 0x55ed89
lea ecx, [esp + 0x5c]
push ecx
call fcn.00560290
mov ecx, eax
and ecx, edx
add esp, 4
cmp ecx, 0xffffffff
je 0x55ed97
cmp edx, dword [esp + 0x38]
jg 0x55ed0d
jl 0x55ecc2
cmp eax, dword [esp + 0x34]
jae 0x55ed0d
mov ecx, dword [esp + 0x14]
mov ebx, dword [esi + 8]
mov ebp, dword [esi + 0xc]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
sbb eax, edx
test eax, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x48], edx
jg 0x55edca
jl 0x55ed06
cmp ecx, 0xac44
ja 0x55edca
mov edi, ebp
jmp 0x55ed97
mov ecx, dword [esp + 0x2c]
add ecx, 1
mov dword [esp + 0x54], ecx
mov ecx, ebp
adc ecx, 0
cmp edi, ecx
mov dword [esp + 0x58], ecx
jl 0x55ede4
jg 0x55ed35
cmp ebx, dword [esp + 0x54]
jbe 0x55ede4
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esi + 8]
jne 0x55edb2
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esi + 0xc]
jne 0x55edb2
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add ebx, 0xfffffc00
adc edi, 0xffffffff
cmp edi, ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jg 0x55ed74
jl 0x55ed6c
cmp ebx, dword [esp + 0x2c]
ja 0x55ed74
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov eax, dword [esi]
test eax, eax
je 0x55ed97
push 0
push edi
push ebx
push eax
call dword [esi + 0x11c]
mov ecx, dword [esi + 0x18]
push ecx
mov dword [esi + 0xc], edi
mov dword [esi + 8], ebx
call fcn.005604b0
add esp, 0x14
cmp ebp, dword [esp + 0x28]
jg 0x55ede4
jl 0x55ebf0
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x2c], edx
jae 0x55ede4
jmp 0x55ebf0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
cmp ebp, dword [esp + 0x28]
jl 0x55eb40
jg 0x55ede4
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x2c], edx
jb 0x55eb40
mov eax, dword [esi]
test eax, eax
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
je 0x55ee0f
push 0
push ebp
push ebx
push eax
call dword [esi + 0x11c]
mov eax, dword [esi + 0x18]
push eax
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebp
call fcn.005604b0
add esp, 0x14
or eax, 0xffffffff
push eax
push eax
lea ecx, [esp + 0x64]
push ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
call fcn.0055d600
add esp, 0xc
test edx, edx
jg 0x55ee4b
jl 0x55ee31
test eax, eax
jae 0x55ee4b
lea edx, [esp + 0x5c]
push edx
call fcn.005608c0
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x7c
ret
mov eax, dword [esi + 0x48]
mov edi, dword [esp + 0x10]
cmp edi, eax
lea eax, [esi + 0x68]
push eax
je 0x55ee8e
call fcn.00561d00
lea ecx, [esi + 0xb8]
push ecx
call fcn.00561a60
lea edx, [esp + 0x64]
push edx
mov dword [esi + 0x40], 2
mov dword [esi + 0x48], edi
call fcn.005602e0
add esp, 0xc
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], 3
jmp 0x55ee96
call fcn.00561c50
add esp, 4
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x60]
push ecx
push edx
call fcn.00560870
mov ecx, dword [esi + 0x60]
lea eax, [esp + 0x64]
push eax
push ecx
call fcn.00560ca0
mov eax, dword [esi + 0x60]
lea edx, [esp + 0x7c]
push edx
push eax
call fcn.00560f80
cdq
mov ecx, eax
add esp, 0x18
or ecx, edx
je 0x55ef1d
lea esp, [esp]
test edx, edx
jl 0x55efdd
jg 0x55eee2
test eax, eax
jb 0x55efdd
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x55efea
mov eax, dword [esi + 0x60]
push 0
push eax
call fcn.00560f60
mov edx, dword [esi + 0x60]
lea ecx, [esp + 0x74]
push ecx
push edx
call fcn.00560f80
cdq
mov ecx, eax
add esp, 0x10
or ecx, edx
jne 0x55eed0
mov eax, dword [esi]
test eax, eax
je 0x55ef40
push 0
push ebp
push ebx
push eax
call dword [esi + 0x11c]
mov edx, dword [esi + 0x18]
push edx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebp
call fcn.005604b0
add esp, 0x14
lea eax, [esp + 0x5c]
push eax
mov eax, esi
call fcn.0055d710
mov edi, edx
add esp, 4
test edi, edi
mov ebx, eax
mov dword [esp + 0x14], ebx
jl 0x55f0a7
jg 0x55ef70
test ebx, ebx
jb 0x55f0a7
lea esp, [esp]
lea ecx, [esp + 0x5c]
push ecx
call fcn.00560290
add esp, 4
cmp edx, 0xffffffff
jg 0x55efc6
jl 0x55ef89
cmp eax, 0xffffffff
ja 0x55efc6
lea edx, [esp + 0x5c]
push edx
call fcn.005600e0
add esp, 4
test eax, eax
je 0x55efc6
lea eax, [esp + 0x5c]
push eax
mov eax, esi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], edi
call fcn.0055d710
mov edi, edx
add esp, 4
test edi, edi
mov ebx, eax
jg 0x55ef70
jl 0x55efbd
test ebx, ebx
jae 0x55ef70
mov dword [esp + 0x14], ebx
jmp 0x55f0a7
push edi
push ebx
push esi
mov dword [esp + 0x20], ebx
call fcn.0055e5e0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov dword [esp + 0x14], 0xffffff78
jmp 0x55f09f
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x2c]
shl edx, 4
sub eax, dword [edx + edi]
sbb ecx, dword [edx + edi + 4]
mov dword [esi + 0x38], eax
mov eax, ecx
test eax, eax
mov dword [esi + 0x3c], ecx
jg 0x55f01d
jl 0x55f00f
mov eax, dword [esi + 0x38]
test eax, eax
jae 0x55f01d
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov edi, dword [esi + 0x38]
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x3c]
mov ecx, dword [esp + 0x20]
add edi, eax
mov dword [esi + 0x38], edi
mov edi, dword [esp + 0x98]
adc edx, ecx
cmp edx, edi
mov dword [esi + 0x3c], edx
jg 0x55f097
jl 0x55f04e
mov eax, dword [esi + 0x38]
cmp eax, dword [esp + 0x94]
ja 0x55f097
push 0xffffffffffffffff
push esi
call fcn.0055e570
add esp, 8
cmp edi, edx
jg 0x55f097
jl 0x55f068
cmp dword [esp + 0x94], eax
ja 0x55f097
xor eax, eax
lea ecx, [esp + 0x5c]
push ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], eax
call fcn.005608c0
lea edx, [esp + 0x70]
push edx
call fcn.00560890
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret
mov dword [esp + 0x14], 0xffffff7f
mov dword [esp + 0x18], 0xffffffff
lea eax, [esp + 0x5c]
push eax
call fcn.005608c0
lea ecx, [esp + 0x70]
push ecx
call fcn.00560890
or eax, 0xffffffff
lea edx, [esi + 0x68]
push edx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
call fcn.00561d00
lea eax, [esi + 0xb8]
push eax
call fcn.00561a60
mov eax, dword [esp + 0x24]
add esp, 0x10
pop edi
mov dword [esi + 0x40], 2
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffff7d
pop ebx
add esp, 0x7c
ret