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

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 0x88]
push edi
mov edi, 1
cmp eax, 5
je 0x43f1f1
add eax, 0xfffffffa
mov edx, edi
cmp eax, edi
ja 0x43f06e
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x28]
mov ebx, dword [esp + 0x44]
shl edi, cl
mov dword [esp + 0x10], eax
mov eax, dword [esi + 4]
sub ebx, eax
lea ecx, [edi - 1]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x78]
shl edx, cl
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], ebx
cmp ecx, edx
jbe 0x43ef1c
mov ecx, ebx
sub ecx, edx
jmp 0x43ef20
mov ecx, dword [esp + 0x14]
cmp dword [esi + 0x14], 0
je 0x43ef30
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
jmp 0x43ef34
mov dword [esp + 0x1c], ecx
cmp ebx, edi
jbe 0x43ef40
sub ebx, edi
mov dword [esp + 0x24], ebx
jmp 0x43ef48
mov dword [esp + 0x24], 0
mov ecx, dword [esi + 0x84]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esi + 0x20]
dec edi
mov edx, 1
shl edx, cl
mov ecx, dword [esi + 0x80]
mov dword [esp + 0x28], edi
mov edi, dword [esi + 0x18]
sub ebx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 3
mov dword [esp + 0x20], ecx
cmp edi, ebx
jae 0x43efb7
jmp 0x43ef86
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
push edx
add eax, edi
call fcn.00448090
mov edx, dword [ebp + eax*4]
mov ecx, edi
and ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x30]
mov dword [ebp + ecx*4], edi
inc edi
add esp, 4
cmp edi, ebx
jb 0x43ef82
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
push edx
mov dword [esi + 0x18], ebx
call fcn.00448090
mov esi, dword [ebp + eax*4]
add esp, 4
cmp esi, dword [esp + 0x1c]
sbb eax, eax
xor ecx, ecx
inc eax
cmp ecx, dword [esp + 0x18]
sbb edx, edx
neg edx
test edx, eax
je 0x43f386
mov ebx, dword [esp + 0x48]
lea esp, [esp]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x44]
lea edx, [esi + eax]
mov cl, byte [edx + ebp]
cmp cl, byte [edi + ebp]
jne 0x43f033
mov ecx, edi
call fcn.0043dd00
cmp eax, ebp
jbe 0x43f033
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
sub edx, esi
mov dword [esp + 0x14], eax
add edx, 2
add eax, edi
mov dword [ecx], edx
cmp eax, ebx
je 0x43f386
mov ebp, dword [esp + 0x14]
cmp esi, dword [esp + 0x24]
jbe 0x43f38a
and esi, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov esi, dword [edx + esi*4]
dec eax
cmp esi, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
sbb ecx, ecx
xor edx, edx
inc ecx
cmp edx, eax
sbb eax, eax
neg eax
test eax, ecx
jne 0x43eff0
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x2c
ret
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x7c]
shl edx, cl
mov ecx, dword [esi + 4]
mov dword [esp + 0x40], ecx
lea eax, [edx - 1]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
sub eax, ecx
mov ecx, dword [esi + 0x78]
shl edi, cl
mov ecx, dword [esi + 0x10]
mov ebx, eax
sub ebx, ecx
mov dword [esp + 0x18], eax
cmp ebx, edi
jbe 0x43f0a8
mov ebx, eax
sub ebx, edi
jmp 0x43f0aa
mov ebx, ecx
cmp dword [esi + 0x14], 0
mov dword [esp + 0x1c], ecx
jne 0x43f0b8
mov dword [esp + 0x1c], ebx
cmp eax, edx
jbe 0x43f0c4
sub eax, edx
mov dword [esp + 0x24], eax
jmp 0x43f0cc
mov dword [esp + 0x24], 0
mov ecx, dword [esi + 0x84]
mov edi, dword [esp + 0x44]
sub edi, dword [esp + 0x40]
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ebp, 1
shl ebp, cl
mov ecx, dword [esi + 0x80]
dec edx
mov dword [esp + 0x14], 3
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], edx
cmp eax, edi
jae 0x43f14d
mov ebp, 0x20
sub ebp, ecx
mov dword [esp + 0x34], ebp
jmp 0x43f117
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + ecx]
imul edx, edx, 0x9e3779b1
mov ecx, ebp
mov ebp, dword [esp + 0x10]
shr edx, cl
mov ecx, eax
and ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov edx, dword [ebx + edx*4]
mov dword [ebp + ecx*4], edx
mov ecx, dword [esp + 0x2c]
mov dword [ebx + ecx*4], eax
inc eax
cmp eax, edi
jb 0x43f113
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
mov dword [esi + 0x18], edi
mov eax, dword [edx]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [esp + 0x20]
shr eax, cl
mov esi, dword [ebx + eax*4]
cmp esi, dword [esp + 0x1c]
sbb eax, eax
xor ecx, ecx
inc eax
cmp ecx, ebp
sbb edx, edx
neg edx
test edx, eax
je 0x43f1e5
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
lea edx, [esi + eax]
mov cl, byte [edx + edi]
mov eax, dword [esp + 0x44]
cmp cl, byte [edi + eax]
jne 0x43f1c0
mov edi, eax
mov ecx, edi
call fcn.0043dd00
cmp eax, dword [esp + 0x14]
jbe 0x43f1c0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
sub ecx, esi
mov dword [esp + 0x14], eax
add ecx, 2
add eax, edi
mov dword [edx], ecx
cmp eax, ebx
je 0x43f1e5
cmp esi, dword [esp + 0x24]
jbe 0x43f1e5
and esi, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov esi, dword [eax + esi*4]
dec ebp
cmp esi, dword [esp + 0x1c]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp edx, ebp
sbb eax, eax
neg eax
test eax, ecx
jne 0x43f181
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x7c]
shl edi, cl
mov ecx, dword [esi + 0x78]
sub ebx, eax
mov dword [esp + 0x40], eax
lea edx, [edi - 1]
mov dword [esp + 0x2c], edx
mov edx, 1
shl edx, cl
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
cmp ecx, edx
jbe 0x43f236
mov ecx, ebx
sub ecx, edx
jmp 0x43f23a
mov ecx, dword [esp + 0x1c]
cmp dword [esi + 0x14], 0
je 0x43f24a
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
jmp 0x43f24e
mov dword [esp + 0x18], ecx
cmp ebx, edi
jbe 0x43f25a
sub ebx, edi
mov dword [esp + 0x20], ebx
jmp 0x43f262
mov dword [esp + 0x20], 0
mov ecx, dword [esi + 0x84]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esi + 0x20]
dec edi
mov edx, 1
shl edx, cl
mov ecx, dword [esi + 0x80]
mov dword [esp + 0x38], edi
mov edi, dword [esi + 0x18]
sub ebx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], 3
mov dword [esp + 0x24], ecx
cmp edi, ebx
jae 0x43f2d5
jmp 0x43f2a4
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x24]
push edx
add eax, edi
call fcn.0041b330
mov edx, dword [ebp + eax*4]
mov ecx, edi
and ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x38]
mov dword [ebp + ecx*4], edi
inc edi
add esp, 4
cmp edi, ebx
jb 0x43f2a0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
push edx
mov dword [esi + 0x18], ebx
call fcn.0041b330
mov esi, dword [ebp + eax*4]
add esp, 4
cmp esi, dword [esp + 0x18]
sbb eax, eax
xor ecx, ecx
inc eax
cmp ecx, dword [esp + 0x1c]
sbb edx, edx
neg edx
test edx, eax
je 0x43f386
mov ebx, dword [esp + 0x48]
lea ebx, [ebx]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x44]
lea edx, [esi + eax]
mov cl, byte [edx + ebp]
cmp cl, byte [edi + ebp]
jne 0x43f34f
mov ecx, edi
call fcn.0043dd00
cmp eax, ebp
jbe 0x43f34f
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
sub edx, esi
mov dword [esp + 0x14], eax
add edx, 2
add eax, edi
mov dword [ecx], edx
cmp eax, ebx
je 0x43f386
mov ebp, dword [esp + 0x14]
cmp esi, dword [esp + 0x20]
jbe 0x43f38a
and esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov esi, dword [edx + esi*4]
dec eax
cmp esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
sbb ecx, ecx
xor edx, edx
inc ecx
cmp edx, eax
sbb eax, eax
neg eax
test eax, ecx
jne 0x43f310
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x2c
ret
mov ebp, dword [esp + 0x14]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x2c
ret