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

Disassembly:
sub esp, 0xa4
push ebx
push ebp
mov ebp, dword [ecx + 4]
push esi
push edi
xor edi, edi
xor esi, esi
cmp ebp, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 1
je 0x4405fa
lea eax, [esp + 0x50]
mov dword [esp + 0x2c], eax
jmp 0x43fffb
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp dword [ebp + 0xc], edi
jne 0x4405df
cmp esi, 8
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
jge 0x440030
call fcn.0043fb90
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x440030
mov ecx, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x18], esi
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x2c], ecx
mov eax, dword [ebp + 0x1c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
mov eax, dword [eax]
mov ecx, eax
mov edx, eax
sar ecx, 2
and dl, 2
and ecx, 3
neg dl
sbb edx, edx
and al, 1
neg edx
inc edx
mov ecx, dword [ecx*4 + 0x4c2f48]
neg al
sbb eax, eax
mov dword [esp + 0x30], ecx
neg eax
inc eax
imul edx, eax
mov eax, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x28], esi
mov ebx, dword [eax + 0xc]
mov eax, dword [ebp + 0x74]
sar ebx, cl
test eax, eax
je 0x4402d3
mov ecx, dword [esp + 0xb8]
test ebx, ebx
mov dword [ebp + ecx*4 + 0x80], 0
jle 0x440210
mov edx, dword [ebp + 0x108]
cmp ebx, edx
jge 0x4400ac
mov edx, ebx
test edx, edx
jle 0x440141
mov al, byte [ebp + 0x112]
test al, al
je 0x4400e1
test edi, edi
je 0x440102
mov ecx, edx
xor eax, eax
imul ecx, esi
mov esi, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
mov esi, dword [esp + 0x28]
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x20]
jmp 0x440102
mov ecx, dword [ebp + 0x128]
push edx
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, eax
test edx, edx
jne 0x440102
mov al, byte [ebp + 0x113]
test al, al
jne 0x440210
mov al, byte [ebp + 0x113]
test al, al
jne 0x44011a
mov eax, dword [esp + 0xb8]
add dword [ebp + eax*4 + 0x80], edx
test edi, edi
je 0x440129
mov ecx, edx
imul ecx, esi
add edi, ecx
mov dword [esp + 0x20], edi
mov ecx, dword [ebp + 0x108]
sub ebx, edx
sub ecx, edx
test edx, edx
mov dword [ebp + 0x108], ecx
jg 0x440208
push ebp
call dword [ebp + 0x74]
add esp, 4
test eax, eax
mov eax, dword [ebp + 0x108]
sete dl
test eax, eax
mov byte [ebp + 0x113], dl
jg 0x4401a9
mov al, byte [ebp + 0x110]
test al, al
je 0x440193
mov eax, dword [ebp + 0x10c]
mov byte [ebp + 0x110], 0
test eax, eax
jge 0x4401a0
neg eax
mov dword [ebp + 0x108], eax
mov dword [ebp + 0x10c], 0
mov byte [ebp + 0x112], 1
jmp 0x4401b0
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp + 0x108], edx
mov byte [ebp + 0x112], 1
jmp 0x4401b0
mov byte [ebp + 0x112], 0
mov ecx, dword [ebp + 0x12c]
test ecx, ecx
je 0x440208
mov eax, dword [ebp + 0x108]
test eax, eax
je 0x440208
mov al, byte [ebp + 0x112]
test al, al
jne 0x440208
push 1
call fcn.004551f0
test eax, eax
je 0x440208
cmp dword [eax + 0x88], 9
jne 0x440208
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
sar edx, 2
and edx, 3
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx*4 + 0x4c2f48]
mov edx, dword [esp + 0x4c]
shl edx, cl
add dword [eax + 0xa0], edx
test ebx, ebx
jg 0x4400a0
mov al, byte [ebp + 0x111]
test al, al
je 0x440289
mov eax, dword [esp + 0x10]
mov byte [ebp + 0x111], 0
xor edx, edx
mov dword [esp + 0x70], 2
mov eax, dword [eax + 0xc]
mov dword [esp + 0x74], edx
cmp eax, 0x2b11
mov word [esp + 0x7a], dx
mov word [esp + 0x78], dx
mov dword [esp + 0x7c], eax
jl 0x440253
mov dword [esp + 0x7c], 0x2b11
mov ecx, 0x8000
mov word [esp + 0x82], cx
mov word [esp + 0x80], cx
cmp dword [esp + 0x14], edx
je 0x440289
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x70]
push ecx
push 0
push eax
mov eax, dword [ebp + 0x1c]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00441220
add esp, 0x14
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x440420
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x440420
mov dword [ebp + 0xc], 1
mov edx, dword [eax + 0x34]
mov ecx, dword [edx + 0x2bc]
test ecx, ecx
je 0x440420
mov eax, dword [ebp + 0x12c]
test eax, eax
je 0x440420
push eax
call fcn.00467b90
jmp 0x440420
test ebx, ebx
jle 0x440420
mov edi, dword [esp + 0x20]
mov esi, dword [ebp + 0x11c]
mov ecx, dword [ebp + 0x118]
sub esi, ecx
cmp ebx, esi
jge 0x4402f3
mov esi, ebx
test esi, esi
jg 0x44033c
mov ecx, dword [ebp + 0x68]
dec ecx
mov eax, ecx
mov dword [ebp + 0x68], ecx
test eax, eax
jle 0x4403b4
mov eax, dword [ebp + 0x6c]
mov ecx, dword [esp + 0x30]
sar eax, cl
mov ecx, dword [ebp + 0x128]
push 1
mov dword [ebp + 0x118], eax
mov eax, dword [esp + 0x28]
mov edx, dword [ecx]
push eax
call dword [edx]
mov ecx, dword [ebp + 0x128]
mov eax, dword [ebp + 0x118]
push eax
push 0
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp + 0x128]
push esi
push edi
mov edx, dword [ecx]
call dword [edx + 4]
test edi, edi
je 0x440356
mov eax, esi
imul eax, dword [esp + 0x28]
add edi, eax
mov ecx, dword [ebp + 0x118]
mov eax, dword [ebp + 0x12c]
sub ebx, esi
add ecx, esi
test eax, eax
mov dword [ebp + 0x118], ecx
je 0x4403a6
push 1
mov ecx, eax
call fcn.004551f0
test eax, eax
je 0x4403a6
cmp dword [eax + 0x88], 9
jne 0x4403a6
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x118]
mov edx, dword [ecx]
sar edx, 2
and edx, 3
mov ecx, dword [edx*4 + 0x4c2f48]
shl esi, cl
mov dword [eax + 0xa0], esi
test ebx, ebx
jg 0x4402df
mov dword [esp + 0x20], edi
jmp 0x440420
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x20], edi
test eax, eax
je 0x4403e2
mov eax, dword [eax + 4]
test eax, eax
je 0x4403e2
mov eax, dword [eax + 0x2bc]
test eax, eax
je 0x4403e2
mov edx, dword [ebp + 0x12c]
test edx, edx
je 0x4403e2
push edx
mov ecx, eax
call fcn.00467b90
test edi, edi
je 0x440419
mov eax, dword [esp + 0x24]
mov ecx, ebx
imul ecx, dword [esp + 0x28]
mov eax, dword [eax]
mov edi, dword [esp + 0x20]
not eax
and eax, 2
mov edx, ecx
shl eax, 6
mov bl, al
mov bh, bl
mov eax, ebx
shl eax, 0x10
mov ax, bx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [ebp + 0xc], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4404ae
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
lea edi, [esp + 0x48]
mov esi, dword [eax + 0xc]
sar esi, cl
mov ecx, dword [esp + 0x28]
dec esi
imul esi, ecx
mov ebx, ecx
add esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x120]
test ecx, ecx
jne 0x440483
mov ecx, ebx
mov esi, edx
lea edi, [ebp + 0x124]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x120], 1
mov ecx, dword [eax + 0x354]
lea esi, [ebp + 0x124]
push esi
mov eax, dword [eax + 0xc]
push ecx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
and cl, 0xf
push ecx
push eax
push edx
call fcn.00440e90
mov ecx, dword [esp + 0x5c]
add esp, 0x14
mov dword [esi], ecx
mov ecx, dword [ebp + 0x20]
lea eax, [ebp + 0x20]
test ecx, ecx
jle 0x4404f9
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4404e4
mov edx, dword [ebp + 0x114]
push eax
mov eax, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x354]
push ecx
push edx
push eax
call fcn.00441220
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x114]
mov edx, dword [ecx + 0xc]
add eax, edx
mov dword [ebp + 0x114], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4405df
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4405df
mov ecx, dword [eax + 0x34]
mov edi, dword [eax + 0x70]
mov esi, dword [eax + 0x74]
add edi, 0x30
mov ebx, dword [ecx + 0x2bc]
mov ecx, 0x64
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], ecx
xor ecx, ecx
add ebx, 0xda8
cmp esi, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
jne 0x440561
add eax, 0xcc
lea edx, [esp + 0x34]
push eax
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0043fd60
add esp, 0xc
jmp 0x44059f
cmp esi, edi
je 0x44059f
mov ecx, dword [esi + 0x10]
xor eax, eax
mov al, byte [ecx + 0xb]
cmp eax, 0x62
je 0x44057c
cmp eax, 6
je 0x44057c
cmp eax, 0x61
jne 0x440598
mov edx, dword [esi + 0x20]
lea eax, [esp + 0x34]
add edx, 0xcc
lea ecx, [esp + 0x34]
push edx
push eax
push ecx
call fcn.0043fd60
add esp, 0xc
mov esi, dword [esi + 4]
test esi, esi
jne 0x440561
lea edx, [esp + 0x34]
push ebx
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0043fd60
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x40]
push edx
mov eax, dword [ecx + 0x354]
mov edx, dword [ecx + 0xc]
push eax
sar eax, 2
and eax, 3
mov ecx, dword [eax*4 + 0x4c2f48]
mov eax, dword [esp + 0x28]
sar edx, cl
push edx
push eax
call fcn.0043fe50
add esp, 0x1c
mov ebp, dword [ebp + 4]
xor edi, edi
cmp ebp, edi
jne 0x43fff3
cmp dword [esp + 0x1c], edi
je 0x4405ff
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc dword [ecx + 8]
jmp 0x44060a
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov dword [ecx + 8], edi
mov eax, dword [ecx + 0x354]
mov edx, eax
not edx
test dl, 2
mov edx, dword [esp + 0xb8]
mov edx, dword [ecx + edx*4 + 0x28]
je 0x440747
cmp esi, edi
jne 0x440649
mov ecx, dword [ecx + 0x24]
mov eax, 0x80808080
mov edi, edx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x440856
cmp esi, 1
jne 0x44066e
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x50]
mov edi, edx
mov ecx, dword [eax + 0x24]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x440856
cmp esi, 2
jne 0x4406c5
mov esi, dword [esp + 0x50]
mov ecx, edx
mov edx, dword [esp + 0x10]
test al, 1
mov edx, dword [edx + 0x20]
je 0x440686
add edx, edx
mov eax, edx
dec edx
test eax, eax
je 0x440856
mov edi, dword [esp + 0x54]
sub edi, esi
inc edx
xor eax, eax
xor ebx, ebx
mov al, byte [edi + esi]
mov bl, byte [esi]
inc esi
lea eax, [eax + ebx - 0x80]
test eax, 0xffff00
je 0x4406ba
test eax, eax
setge al
dec eax
and al, 1
add eax, 0xff
mov byte [ecx], al
inc ecx
dec edx
jne 0x440698
jmp 0x440856
mov ebx, dword [esp + 0x18]
lea esi, [esp + 0x50]
mov ecx, ebx
lea edi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
mov ebp, edx
shl ebx, 7
mov ecx, dword [ecx + 0x20]
mov edx, 0x80
sub edx, ebx
test al, 1
je 0x4406ee
add ecx, ecx
mov eax, ecx
dec ecx
test eax, eax
je 0x440856
inc ecx
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x18]
mov ecx, edx
lea eax, [esp + edi*4 + 0x4c]
mov esi, dword [eax]
xor ebx, ebx
sub eax, 4
mov bl, byte [esi]
add ecx, ebx
inc esi
mov dword [eax + 4], esi
dec edi
test edi, edi
ja 0x440708
test ecx, 0xffff00
je 0x440733
test ecx, ecx
setge cl
dec ecx
and cl, 1
add ecx, 0xff
mov eax, dword [esp + 0x1c]
mov byte [ebp], cl
inc ebp
dec eax
mov dword [esp + 0x1c], eax
jne 0x4406fe
jmp 0x440856
cmp esi, edi
jne 0x440755
mov ecx, dword [ecx + 0x24]
xor eax, eax
jmp 0x440634
cmp esi, 1
jne 0x44077a
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x50]
mov edi, edx
mov ecx, dword [eax + 0x24]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x440856
cmp esi, 2
jne 0x4407dd
mov esi, dword [esp + 0x50]
mov ecx, edx
mov edx, dword [esp + 0x10]
test al, 1
mov edx, dword [edx + 0x20]
je 0x440792
add edx, edx
mov eax, edx
dec edx
test eax, eax
je 0x440856
mov edi, dword [esp + 0x54]
lea ebp, [edx + 1]
sub edi, esi
movsx eax, word [edi + esi]
movsx edx, word [esi]
add eax, edx
add esi, 2
movsx edx, ax
cmp edx, eax
je 0x4407d2
xor edx, edx
test eax, eax
setge dl
dec edx
and edx, 0xffff0001
add edx, 0x7fff
mov word [ecx], dx
jmp 0x4407d5
mov word [ecx], ax
add ecx, 2
dec ebp
jne 0x4407a6
jmp 0x440856
mov ebx, dword [esp + 0x18]
lea esi, [esp + 0x50]
mov ecx, ebx
lea edi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
mov edi, edx
test al, 1
mov ecx, dword [ecx + 0x20]
je 0x4407fc
add ecx, ecx
mov edx, ecx
dec ecx
test edx, edx
je 0x440856
inc ecx
mov dword [esp + 0x1c], ecx
xor esi, esi
lea eax, [esp + ebx*4 + 0x4c]
lea edx, [ebx]
mov ecx, dword [eax]
sub eax, 4
movsx ebp, word [ecx]
add ecx, 2
add esi, ebp
mov dword [eax + 4], ecx
dec edx
test edx, edx
ja 0x440810
movsx eax, si
cmp eax, esi
je 0x440845
xor ecx, ecx
test esi, esi
setge cl
dec ecx
and ecx, 0xffff0001
add ecx, 0x7fff
mov word [edi], cx
jmp 0x440848
mov word [edi], si
mov eax, dword [esp + 0x1c]
add edi, 2
dec eax
mov dword [esp + 0x1c], eax
jne 0x440808
mov edx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [edx + 0xac], 0
pop ebx
add esp, 0xa4
ret 4