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

Disassembly:
sub esp, 0x1a4
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x47409c
mov ebp, edx
push ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
call fcn.00447070
mov edi, eax
add esp, 8
cmp edi, ebx
mov dword [esp + 0x10], edi
je 0x440460
push 2
push ebx
push edi
call fcn.00447c70
mov esi, eax
add esp, 0xc
cmp esi, ebx
jne 0x44000b
push edi
call fcn.00447ac0
add esp, 4
cmp eax, 0xffffffff
mov dword [0x754328], eax
jne 0x440010
or esi, eax
jmp 0x440010
mov eax, dword [0x754328]
cmp esi, ebx
jne 0x440406
cmp eax, 0x1000
mov esi, 0x1000
jg 0x440026
mov esi, eax
mov eax, esi
push 2
neg eax
push eax
push edi
call fcn.00447c70
add esp, 0xc
cmp eax, ebx
jne 0x4400ed
push edi
push esi
push 1
push 0x753328
call fcn.00447980
add esp, 0x10
cmp eax, esi
jne 0x4400ea
add esi, 0xffffffea
test esi, esi
jl 0x440095
lea edi, [esi + 0x753328]
push 4
push 0x474098
push edi
call fcn.00447940
add esp, 0xc
test eax, eax
je 0x440088
dec esi
dec edi
test esi, esi
jge 0x440064
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x440099
mov edi, dword [esp + 0x10]
mov ebx, 1
mov ecx, esi
jmp 0x440099
mov ecx, dword [esp + 0x18]
xor eax, eax
test ebx, ebx
sete al
test eax, eax
jne 0x4400ed
mov dx, word [ecx + 0x75332c]
mov word [esp + 0x24], dx
mov dx, word [ecx + 0x75332e]
mov word [esp + 0x26], dx
mov dx, word [ecx + 0x753330]
mov word [esp + 0x28], dx
mov dx, word [ecx + 0x753332]
mov word [esp + 0x2a], dx
mov edx, dword [ecx + 0x753334]
mov ecx, dword [ecx + 0x753338]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
jmp 0x4400ed
or eax, 0xffffffff
test eax, eax
mov esi, eax
jne 0x440406
mov dx, word [esp + 0x26]
cmp word [esp + 0x24], dx
jne 0x440460
mov ax, word [esp + 0x2a]
cmp word [esp + 0x28], ax
jne 0x440460
cmp ax, 1
jb 0x440460
movsx eax, byte [ebp]
push eax
inc ebp
call fcn.004474a0
add esp, 4
mov byte [esp + 0x94], al
test al, al
lea esi, [esp + 0x95]
je 0x440156
movsx eax, byte [ebp]
push eax
inc ebp
call fcn.004474a0
add esp, 4
mov byte [esi], al
inc esi
test al, al
jne 0x440141
mov esi, dword [esp + 0x2c]
xor edi, edi
cmp esi, 0x1000
jbe 0x440169
mov esi, 0x1000
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x10]
push 0
push eax
push ebp
call fcn.00447c70
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4401a2
push ebp
push esi
push 1
push 0x753328
call fcn.00447980
add esp, 0x10
cmp eax, esi
je 0x4401a2
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x440297
mov eax, dword [esp + 0x2a]
xor ebx, ebx
and eax, 0xffff
mov ebp, 0x753328
mov dword [esp + 0x38], eax
jmp 0x4401c8
mov eax, dword [esp + 0x38]
cmp ebx, eax
jge 0x440297
lea edx, [esp + 0x3c]
mov ecx, ebp
call fcn.00440730
xor esi, esi
cmp word [esp + 0x58], si
jbe 0x440212
cmp esi, 0xfe
jge 0x440212
mov ecx, dword [esp + 0x6a]
movsx edx, byte [esi + ecx]
push edx
call fcn.004474a0
mov byte [esp + esi + 0xb8], al
mov eax, dword [esp + 0x5c]
add esp, 4
inc esi
and eax, 0xffff
cmp esi, eax
jl 0x4401e4
lea edx, [esp + 0x94]
lea ecx, [esp + 0xb4]
mov byte [esp + esi + 0xb4], 0
call fcn.004405f0
test eax, eax
jne 0x440269
mov ax, word [esp + 0x46]
mov edi, 1
test ax, ax
je 0x440248
cmp ax, 8
je 0x440248
xor edi, edi
cmp byte [esp + 0x42], 0x14
jbe 0x440251
xor edi, edi
mov al, byte [esp + 0x43]
test al, al
je 0x44025b
xor edi, edi
mov cx, word [esp + 0x24]
cmp word [esp + 0x5e], cx
je 0x440269
xor edi, edi
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5a]
mov ecx, dword [esp + 0x5c]
and edx, 0xffff
and eax, 0xffff
and ecx, 0xffff
add edx, eax
add ecx, ebp
inc ebx
test edi, edi
lea ebp, [ecx + edx + 0x2e]
je 0x4401c4
test edi, edi
jne 0x4402a3
mov dword [esp + 0x1c], 0xffffffff
mov esi, dword [esp + 0x1c]
test esi, esi
jne 0x440402
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x70]
push edx
lea edx, [esp + 0x40]
call fcn.00440510
mov esi, eax
test esi, esi
jne 0x440402
mov ax, word [esp + 0x78]
test ax, ax
jne 0x440363
mov edi, dword [esp + 0x82]
push edi
call fcn.00447230
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x14], ebx
jne 0x4402fb
or esi, 0xffffffff
jmp 0x4403d9
mov eax, dword [esp + 0x8a]
mov ecx, dword [esp + 0x66]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x10]
and eax, 0xffff
and edx, 0xffff
add ecx, eax
push 0
lea eax, [ecx + edx + 0x1e]
push eax
push ebp
call fcn.00447c70
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x440350
push ebp
push edi
push 1
push ebx
call fcn.00447980
add esp, 0x10
cmp eax, edi
je 0x440348
or esi, 0xffffffff
test esi, esi
je 0x4403dd
push ebx
call fcn.00446d50
add esp, 4
mov dword [esp + 0x14], 0
jmp 0x4403d9
cmp ax, 8
jne 0x4403d9
lea ecx, [esp + 0x18]
lea edx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x14]
push edx
lea edx, [esp + 0x44]
call fcn.00440470
mov esi, eax
test esi, esi
jne 0x440402
mov ecx, dword [esp + 0x86]
mov eax, dword [esp + 0x18]
push ecx
mov dword [0x77a47c], eax
call fcn.00447230
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x4403ae
mov dword [0x75432c], eax
jmp 0x4403b1
or esi, 0xffffffff
test esi, esi
jne 0x440402
push 0x8000
call fcn.00447230
add esp, 4
mov dword [0x77a480], eax
test eax, eax
jne 0x4403ce
or esi, 0xffffffff
test esi, esi
jne 0x440402
call fcn.0042b0e0
mov esi, eax
test esi, esi
jne 0x440402
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x14], 0
mov dword [edx], eax
mov edx, dword [esp + 0x86]
mov dword [ecx], edx
mov edi, dword [esp + 0x10]
test edi, edi
je 0x440413
push edi
call fcn.00446f40
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x440424
push eax
call fcn.00446d50
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x440435
push eax
call fcn.00446d50
add esp, 4
mov eax, dword [0x77a480]
test eax, eax
je 0x440451
push eax
call fcn.00446d50
add esp, 4
mov dword [0x77a480], 0
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a4
ret 8
or esi, 0xffffffff
jmp 0x440406