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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
mov eax, dword [0x9c48d0]
xor eax, esp
mov dword [esp + 0xb8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [eax + 0x40]
push esi
mov dword [esp + 0xc], eax
push edi
mov eax, ebx
call fcn.004558d0
mov edi, eax
test edx, edx
jl 0x43f097
jg 0x43f05a
test edi, edi
jb 0x43f097
xor eax, eax
cmp edi, edi
jne 0x43f097
cmp eax, edx
jne 0x43f097
lea eax, [edi + 2]
cmp eax, 2
jb 0x43f097
push eax
call fcn.00658d9b
mov esi, eax
add esp, 4
mov dword [esp + 0x3c], esi
test esi, esi
je 0x43f097
push esi
mov eax, ebx
call fcn.00455a80
add esp, 4
test al, al
jne 0x43f0a6
push esi
call fcn.00658a01
add esp, 4
push 0
call fcn.00658a01
add esp, 4
jmp 0x43f67b
add edi, esi
mov word [edi], 0
cmp byte [esi], 0
mov dword [esp + 0x24], edi
mov edi, esi
je 0x43f0e8
jmp 0x43f0c0
movsx eax, byte [edi]
push eax
push 0x923e2c
call fcn.0065aab0
add esp, 8
test eax, eax
je 0x43f0e2
sub eax, 0x923e2c
mov cl, byte [eax + 0x929294]
mov byte [edi], cl
inc edi
cmp byte [edi], 0
jne 0x43f0c0
cmp byte [esi], 0
mov edi, esi
je 0x43f118
nop
movsx edx, byte [edi]
push edx
push 0x92929c
call fcn.0065aab0
add esp, 8
test eax, eax
je 0x43f112
sub eax, 0x92929c
mov al, byte [eax + 0x929298]
mov byte [edi], al
inc edi
cmp byte [edi], 0
jne 0x43f0f0
push 0xffffffffffffffff
push 0
mov ebx, esi
call fcn.00457f60
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43f131
mov eax, 0x923408
push 0x923408
push str..tex
push eax
push str._s_s_s
call fcn.00458200
push ebx
mov edi, eax
call fcn.00658a01
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x40]
call fcn.00455060
mov ebx, eax
mov eax, edi
mov edx, ebx
call fcn.00455100
push ebx
mov dword [esp + 0x34], eax
call fcn.00658a01
push edi
call fcn.00658a01
mov eax, esi
add esp, 0x1c
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x43f180
sub eax, ecx
mov ecx, dword [esp + 0x24]
add eax, esi
cmp eax, ecx
jae 0x43f19f
cmp byte [eax], 0
jne 0x43f19d
inc eax
cmp eax, ecx
jb 0x43f193
cmp eax, ecx
sbb ecx, ecx
and ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], 0
je 0x43f668
lea edx, [esp + 0x28]
push edx
push str.version__u
push ecx
call fcn.00459130
add esp, 0xc
test eax, eax
je 0x43f668
cmp dword [esp + 0x28], 1
jne 0x43f668
mov edi, dword [esp + 0x10]
add edi, 0x4c
mov esi, edi
mov dword [esp + 0x38], edi
call fcn.00449370
mov ebx, dword [esp + 0x10]
lea esi, [ebx + 0xa4]
mov dword [esp + 0x18], esi
call fcn.00440430
lea esi, [ebx + 0x1bc]
mov dword [esp + 0x20], esi
call fcn.00440430
add ebx, 0x2d4
mov esi, ebx
mov dword [esp + 0x34], ebx
call fcn.00440480
mov esi, dword [esp + 0x10]
add esi, 0x36c
mov dword [esp + 0x30], esi
call fcn.00412710
xor eax, eax
lea ecx, [esp + 0x78]
push 0x40
push eax
mov edx, ecx
push edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x80], ecx
call fcn.0065b340
add esp, 0xc
lea eax, [esp + 0xc]
push eax
mov eax, esi
mov dword [esp + 0x30], 1
mov dword [esp + 0x10], 0
call fcn.0044f5d0
mov ecx, dword [edi]
push ecx
lea eax, [esp + 0x6c]
call fcn.004404d0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xc]
push eax
mov eax, edi
mov dword [esp + 0x10], edx
call fcn.0044f5d0
mov ecx, dword [ebx]
lea edi, [ecx + 1]
mov dword [esp + 0xc], ecx
mov ecx, edi
mov esi, ebx
call fcn.0057f800
test al, al
jne 0x43f2c2
xor eax, eax
mov byte [eax], al
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx]
mov edx, dword [ebx + 0xc]
lea esi, [edx + ecx*8]
cmp eax, ecx
jbe 0x43f2e8
sub eax, ecx
add eax, eax
add eax, eax
add eax, eax
push eax
lea eax, [esi + 8]
push esi
push eax
call fcn.006586a0
add esp, 0xc
mov dword [ebx], edi
mov edi, dword [esp + 0x10]
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov ecx, dword [edi + 0x48]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x14]
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43f310
mov ecx, dword [esp + 0x24]
sub eax, esi
add eax, edx
cmp eax, ecx
jae 0x43f32f
cmp byte [eax], 0
jne 0x43f32d
inc eax
cmp eax, ecx
jb 0x43f323
cmp eax, ecx
sbb ecx, ecx
and ecx, eax
mov dword [esp + 0x14], ecx
je 0x43f60f
movsx eax, byte [ecx]
add eax, 0xffffffd8
cmp eax, 0x4b
ja case.0x43f34f.42
movzx ecx, byte [eax + 0x43f6b0]
jmp dword [ecx*4 + 0x43f698]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
mov ecx, dword [edx + eax*4 - 4]
mov esi, dword [esp + 0x14]
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x60]
push ecx
push str.l__u__u__u
push esi
call fcn.00459130
add esp, 0x14
test eax, eax
je 0x43f3a0
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
lea edx, [esp + 0x58]
push edx
call fcn.004269d0
jmp case.0x43f34f.42
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x5c]
push ecx
push str.l__u__u
push esi
call fcn.00459130
add esp, 0x10
test eax, eax
je case.0x43f34f.42
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
lea edx, [esp + 0x58]
push edx
mov dword [esp + 0x68], 0
call fcn.004269d0
jmp case.0x43f34f.42
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2c]
push eax
push str.s__u
push ecx
call fcn.00459130
add esp, 0xc
test eax, eax
je case.0x43f34f.42
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
push ecx
call fcn.0044f5d0
jmp case.0x43f34f.42
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
test eax, eax
je case.0x43f34f.42
cmp eax, dword [esp + 0x1c]
ja case.0x43f34f.42
mov esi, dword [esp + 0x14]
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x50]
push ecx
push 0x9292d4
push esi
call fcn.00459130
add esp, 0x14
lea edx, [esp + 0x48]
test eax, eax
je 0x43f46d
mov eax, dword [esp + 0x20]
mov ebx, dword [eax]
push edx
call fcn.004269d0
jmp case.0x43f34f.42
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x54]
push ecx
push edx
push str.p__u__u__u
push esi
call fcn.00459130
add esp, 0x14
test eax, eax
je case.0x43f34f.42
lea eax, [esp + 0x48]
push eax
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
call fcn.004269d0
jmp case.0x43f34f.42
mov ebx, dword [esp + 0x14]
push 0xffffffffffffffff
push 0
inc ebx
call fcn.00457f60
mov esi, eax
add esp, 8
cmp word [esi], 0x22
jne 0x43f4e9
call fcn.00457900
cmp word [esi + eax*2 - 2], 0x22
jne 0x43f4e9
mov eax, esi
call fcn.00457900
lea ecx, [esi + 2]
lea ebx, [eax - 2]
push ecx
call fcn.00457e20
push esi
mov edi, eax
call fcn.00658a01
add esp, 8
mov esi, edi
push 0x9292ec
mov edi, 0x9292f4
mov eax, esi
call fcn.00458330
add esp, 4
call fcn.00454fe0
test eax, eax
je 0x43f50d
xor edx, edx
cmp dx, word [eax]
jne 0x43f53a
mov eax, esi
test esi, esi
jne 0x43f518
mov eax, 0x923408
push 0x923408
push str..tex
push eax
push str._s_s_s
call fcn.00458200
push esi
mov edi, eax
call fcn.00658a01
add esp, 0x14
mov esi, edi
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
je 0x43f55c
mov eax, dword [esp + 0x10]
push esi
call fcn.0043eb80
push esi
mov edi, eax
call fcn.00658a01
add esp, 4
mov esi, edi
mov edi, dword [esp + 0x38]
mov eax, dword [edi]
push eax
lea eax, [esp + 0x6c]
call fcn.004404d0
lea ecx, [esp + 0xc]
push ecx
mov eax, edi
mov dword [esp + 0x10], esi
call fcn.0044f5d0
mov esi, dword [esp + 0x34]
mov ebx, dword [esi]
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
lea edi, [ebx + 1]
mov ecx, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0xc], ebx
call fcn.0057f800
test al, al
jne 0x43f5a2
xor eax, eax
mov byte [eax], al
mov ecx, dword [esi + 0xc]
mov eax, dword [esi]
lea ebx, [ecx + ebx*8]
mov ecx, dword [esp + 0xc]
cmp eax, ecx
jbe 0x43f5c8
sub eax, ecx
add eax, eax
add eax, eax
add eax, eax
push eax
lea edx, [ebx + 8]
push ebx
push edx
call fcn.006586a0
add esp, 0xc
mov eax, dword [esp + 0x44]
mov dword [esi], edi
push 0
mov dword [ebx], eax
mov dword [ebx + 4], eax
call fcn.00658a01
mov edi, dword [esp + 0x14]
add esp, 4
jmp case.0x43f34f.42
cmp dword [esp + 0x68], 1
jbe case.0x43f34f.42
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
lea ebx, [esp + 0x68]
call fcn.00440530
mov ecx, dword [edi + 0x2e0]
mov dword [ecx + eax*8 + 4], esi
jmp case.0x43f34f.42
mov eax, dword [esp + 0x18]
mov edx, dword [edi + 0x2e0]
mov ecx, dword [eax]
mov dword [edx + 4], ecx
mov eax, dword [edi + 0x40]
lea edx, [edi + 0x10]
push edx
push eax
mov byte [edi + 8], 0
call fcn.0065f3c6
add esp, 8
lea eax, [esp + 0x68]
call fcn.00412770
push 0
call fcn.00658a01
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00658a01
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.0065865c
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0x1c]
push edx
call fcn.00658a01
push esi
call fcn.00658a01
add esp, 8
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 2
call fcn.0065865c
mov esp, ebp
pop ebp
ret 4