Function at 0x43e839
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x340
lea edi, [esp + 0x80]
mov ecx, edi
mov edx, 0x4b38a4
push 0xa
call fcn.0047a0a8
add esp, 4
cmp dword [edi], 0x80000011
jne 0x43ea98
mov eax, dword [esp + 0x84]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 4
mov dword [esp + 0x5c], eax
lea eax, [0x49eb2b]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x80], 0x88934c3d
mov edx, dword [esp + 0x80]
call fcn.00426a9c
xorps xmm0, xmm0
movups xmmword [esp + 0x8c], xmm0
movaps xmmword [esp + 0x80], xmm0
mov ecx, 0xfffffffc
mov edx, dword [ecx + 0x4a73c8]
xor edx, dword [eax + ecx + 4]
mov dword [esp + ecx + 0x84], edx
add ecx, 4
cmp ecx, 0x18
jb 0x43e8cc
movzx eax, word [eax + 0x1c]
xor eax, 0x5792
mov word [esp + 0x9c], ax
movaps xmm0, xmmword [esp + 0x80]
lea eax, [esp + 0x1e0]
movaps xmmword [eax], xmm0
movdqu xmm0, xmmword [esp + 0x8e]
movdqu xmmword [eax + 0xe], xmm0
lea esi, [esp + 0x20]
lea edx, [esp + 0x50]
mov ecx, esi
push 0x1e
push eax
call fcn.00413c44
add esp, 8
cmp dword [esi], 0x80000011
jne 0x43eaa6
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov esi, ecx
shl esi, 5
add esi, edx
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x1ec], esi
test ecx, ecx
je 0x43eacd
mov dword [esp + 0xc], 0
mov ecx, 4
mov eax, edx
add edx, 0x20
mov ebx, dword [eax]
test ebx, ebx
je 0x43ea8f
mov dword [esp + 0x80], ebx
movdqu xmm0, xmmword [eax + 4]
movups xmm1, xmmword [eax + 0x10]
lea eax, [esp + 0x84]
movups xmmword [eax + 0xc], xmm1
movdqu xmmword [eax], xmm0
mov eax, dword [esp + 0x8c]
test eax, eax
mov dword [esp + 0x18], edx
je 0x43ea6d
lea edi, [ebx + 0x10]
movdqa xmm0, xmmword [ebx]
pmovmskb esi, xmm0
not esi
mov dword [esp + 0x14], eax
test si, si
jne 0x43e9ea
movdqa xmm0, xmmword [edi]
pmovmskb esi, xmm0
add ebx, 0xfffffe00
add edi, 0x10
cmp esi, 0xffff
je 0x43e9cf
not esi
bsf eax, esi
shl eax, 5
mov edx, ebx
sub edx, eax
mov eax, edx
add eax, 0xfffffff0
je 0x43ea6d
cmp dword [eax], 0x80000002
jne 0x43ea5b
mov dword [esp + 0x10], ecx
add edx, 0xfffffff4
lea ecx, [esp + 0x20]
call fcn.004023c0
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x54]
jne 0x43ea32
lea ecx, [esp + 0x54]
call fcn.00416060
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x5c]
lea eax, [edx + edx*2]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov dword [edx + eax*4 + 8], ecx
movq xmm0, qword [esp + 0x20]
movq qword [edx + eax*4], xmm0
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x5c], eax
mov ecx, edx
lea eax, [esi - 1]
and eax, esi
mov esi, eax
mov eax, dword [esp + 0x14]
dec eax
jne 0x43e9c6
mov esi, ecx
lea ecx, [esp + 0x80]
call fcn.00426128
mov ecx, esi
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x1c]
jne 0x43e978
mov edx, dword [esp + 0x1c]
lea edi, [esp + 0x80]
jmp 0x43ead5
push edi
call fcn.004347f4
add esp, 4
jmp 0x43ee81
push esi
call fcn.004347f4
add esp, 4
mov edx, 8
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], edx
mov dword [esp + 0xc], 0
lea esi, [esp + 0x1e0]
mov dword [esi + 4], edx
mov ecx, esi
call fcn.0044491f
lea eax, [0x4a31b3]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x80], 0x2194458d
mov edx, dword [esp + 0x80]
call fcn.0042717a
mov ebx, eax
push 0x154
push 0
push edi
call fcn.0047f090
add esp, 0xc
mov eax, 0xfffffffc
mov ecx, dword [eax + 0x4a73e6]
xor ecx, dword [ebx + eax + 4]
mov dword [esp + eax + 0x84], ecx
add eax, 4
cmp eax, 0x150
jb 0x43eb28
movzx eax, word [ebx + 0x154]
xor eax, 0x73a9
lea ebx, [esp + 0x80]
mov word [ebx + 0x154], ax
mov edi, 0x156
push edi
lea eax, [esp + 0x84]
push eax
push esi
call fcn.0047eb10
add esp, 0xc
mov ecx, 0x156
xor edx, edx
call fcn.00478b38
mov dword [esp + 0x68], eax
mov eax, esi
mov esi, edx
push edi
push eax
push edx
call fcn.0047eb10
add esp, 0xc
mov eax, 0x2c
mov dword [ebx], eax
mov dword [esp + 0x64], esi
mov dword [ebx + 4], esi
movaps xmm0, xmmword [0x4936f0]
movups xmmword [ebx + 8], xmm0
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], edi
mov word [ebx + 0x24], 1
lea ecx, [esp + 0x38]
mov edx, ebx
call fcn.00424a18
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0xc]
lea edx, [esi + esi*2]
lea edx, [eax + edx*4]
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x1ec], edx
test esi, esi
je 0x43ee2f
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
mov ebx, dword [esp + 0x40]
shl ebx, 3
lea edi, [esp + 0x80]
mov dword [esp + 0x6c], ebx
lea ecx, [eax + 0xc]
mov edx, dword [eax]
cmp edx, 0x80000000
je 0x43f7c9
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x10], ecx
mov edi, dword [eax + 8]
cmp edi, 0x44
je 0x43edbe
cmp edi, 0x84
je 0x43edbe
mov esi, dword [esp + 0x34]
mov dword [esp + 0xc], edi
test ebx, ebx
je 0x43ed84
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x44]
mov edx, dword [esp + 0x10]
push edi
call fcn.00401b50
add esp, 4
lea eax, [esp + 0x70]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 0x41117d
mov dword [esp + 0x80], 0x4a753c
mov dword [esp + 0x84], 2
mov dword [esp + 0x90], 0
lea eax, [esp + 0x78]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], 1
lea ecx, [esp + 0x20]
lea edi, [esp + 0x80]
mov edx, edi
call fcn.004017d0
mov edx, dword [esp + 0x24]
mov ecx, edi
push dword [esp + 0x28]
call fcn.00401b50
add esp, 4
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x88]
jne 0x43ed14
push eax
push dword [esp + 0x88]
push dword [esp + 0x50]
call fcn.0047f1ea
add esp, 0xc
test eax, eax
sete al
mov dword [esp + 0x14], eax
jmp 0x43ed1c
mov dword [esp + 0x14], 0
cmp dword [esp + 0x80], 0
mov edi, dword [esp + 0xc]
je 0x43ed3f
push dword [esp + 0x84]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x20], 0
je 0x43ed58
push dword [esp + 0x24]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x44], 0
je 0x43ed71
push dword [esp + 0x48]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
add esi, 8
add ebx, 0xfffffff8
cmp byte [esp + 0x14], 0
je 0x43ec57
jmp 0x43edbe
cmp dword [esp + 0x1c], 0
je 0x43ed9d
push dword [esp + 0x10]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esp + 0x18]
mov eax, ecx
cmp ecx, dword [esp + 0x60]
lea edi, [esp + 0x80]
mov ebx, dword [esp + 0x6c]
jne 0x43ec17
mov eax, dword [esp + 0x60]
jmp 0x43ee36
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1e4], eax
cmp dword [esp + 0x1c], 0
je 0x43ede2
push dword [esp + 0x10]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esp + 0x1e0]
call fcn.0043739e
cmp dword [esp + 0x38], 0
je 0x43ee07
push dword [esp + 0x34]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x68], 0
je 0x43ee20
push dword [esp + 0x64]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x43f244
lea edi, [esp + 0x80]
lea ecx, [esp + 0x1e0]
mov dword [ecx + 4], eax
call fcn.0043739e
cmp dword [esp + 0x38], 0
je 0x43ee5e
push dword [esp + 0x3c]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x68], 0
je 0x43ee77
push dword [esp + 0x64]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [0x4a4440]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x80], 0xdc46c1bc
mov edx, dword [esp + 0x80]
call fcn.00426dea
xorps xmm0, xmm0
movups xmmword [esp + 0x8c], xmm0
movaps xmmword [esp + 0x80], xmm0
mov ecx, 0xfffffffc
mov edx, dword [ecx + 0x4a7550]
xor edx, dword [eax + ecx + 4]
mov dword [esp + ecx + 0x84], edx
add ecx, 4
cmp ecx, 0x18
jb 0x43eec4
movzx ecx, byte [eax + 0x1e]
movzx eax, word [eax + 0x1c]
xor eax, 0xa239
lea esi, [esp + 0x80]
mov word [esi + 0x1c], ax
xor cl, 0x56
mov byte [esi + 0x1e], cl
movaps xmm0, xmmword [esi]
lea edi, [esp + 0x1e0]
movaps xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0xf]
movups xmmword [edi + 0xf], xmm0
mov ecx, 0x1f
xor edx, edx
call fcn.00478b38
mov dword [esp + 0x10], eax
movaps xmm0, xmmword [edi]
movups xmmword [edx], xmm0
movups xmm0, xmmword [edi + 0xf]
movups xmmword [edx + 0xf], xmm0
mov eax, 0x2c
mov dword [esi], eax
mov dword [esp + 0xc], edx
mov dword [esi + 4], edx
movaps xmm0, xmmword [0x493700]
movups xmmword [esi + 8], xmm0
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0x1f
mov word [esi + 0x24], 1
mov esi, edi
mov edi, dword [esp + 0x84]
mov ecx, esi
lea edx, [esp + 0x80]
call fcn.0041e742
cmp dword [esp + 0x1e0], 0
je 0x43efa1
mov eax, dword [esp + 0x1e4]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [esp + 0x9c]
add edi, edx
sub eax, edx
mov dword [esp + 0x9c], ecx
jmp 0x43eff0
cmp byte [esp + 0xa5], 0
jne 0x43f0db
mov byte [esp + 0xa5], 1
cmp byte [esp + 0xa4], 0
je 0x43efd1
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
jmp 0x43efe7
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
cmp eax, edi
je 0x43f0db
sub eax, edi
add edi, dword [esp + 0x84]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0x41117d
mov dword [esp + str.Invalid], 0x4a7588
mov dword [esp + 0x1e4], 2
mov dword [esp + 0x1f0], 0
lea eax, [esp + 0x44]
mov dword [esp + 0x1e8], eax
xor edi, edi
inc edi
mov dword [esp + 0x1ec], edi
lea ebx, [esp + 0x20]
mov ecx, ebx
mov edx, esi
call fcn.004017d0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov edx, esi
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add eax, esi
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x1e4], esi
mov dword [esp + 0x1e8], eax
mov word [esp + 0x1ec], 0
mov ecx, ebx
call fcn.00478fe0
mov ebx, dword [esp + 0x24]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
cmp dword [esp + 0x20], 0
je 0x43f0a8
push ebx
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x14], 0
je 0x43f0be
push esi
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
lea esi, [esp + 0x1e0]
jne 0x43f22b
cmp byte [esp + 0xa5], 0
je 0x43ef60
lea eax, [0x49a298]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x80], 0xff51f74d
mov edx, dword [esp + 0x80]
call fcn.00426daa
xor ecx, ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x88], ecx
mov ecx, 0xfffffffc
mov edx, dword [ecx + 0x4a756f]
xor edx, dword [eax + ecx + 4]
mov dword [esp + ecx + 0x84], edx
add ecx, 4
cmp ecx, 8
jb 0x43f129
lea edi, [esp + 0x80]
mov eax, dword [edi + 8]
lea ecx, [esp + 0x2c]
mov dword [ecx - 4], eax
movsd xmm0, qword [edi]
movsd qword [ecx - 0xc], xmm0
mov dword [edi], 1
lea eax, [esp + 0x20]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov word [edi + 0xc], 0
lea esi, [esp + 0x44]
mov ecx, esi
mov edx, edi
call fcn.00478fe0
mov eax, dword [esi + 4]
mov ebx, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
lea eax, [0x49bceb]
mov dword [edi], eax
mov ecx, dword [edi]
mov dword [edi], 0x66b1d85f
mov edx, dword [edi]
call fcn.00426b34
xor ecx, ecx
mov dword [edi + 4], ecx
mov dword [edi], ecx
mov dword [edi + 8], ecx
mov ecx, 0xfffffffc
mov edx, dword [ecx + 0x4a757b]
xor edx, dword [eax + ecx + 4]
mov dword [esp + ecx + 0x84], edx
add ecx, 4
cmp ecx, 8
jb 0x43f1b3
mov al, byte [eax + 0xc]
xor al, 0xd7
mov byte [esp + 0x8c], al
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 0x1e0], xmm0
movsd xmm0, qword [esp + 0x85]
movsd qword [esp + 0x1e5], xmm0
lea eax, [esp + 0x1e0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp dword [esp + 0x44], 0
je 0x43f223
push ebx
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
je 0x43f561
cmp dword [esp + 0x10], 0
je 0x43f244
push dword [esp + 0xc]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
lea eax, [esp + 0x80]
mov dword [eax], ecx
mov dword [eax + 4], 4
mov dword [eax + 8], ecx
mov ecx, 4
mov eax, 5
xor edx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
xor eax, eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
mov eax, dword [0x4c003c]
lea ecx, [esp + 0x1e0]
push ecx
call eax
mov edx, dword [esp + 0x1e0]
mov ebx, dword [esp + 0x1e4]
mov eax, edx
add eax, 0x2ac18000
mov dword [esp + 0xc], eax
mov edi, ebx
adc edi, 0xfe624e21
mov esi, 0xd53e8000
sub esi, edx
mov ecx, 0x19db1de
sbb ecx, ebx
mov eax, 0xd53e7fff
cmp eax, edx
mov edx, 0x19db1de
sbb edx, ebx
cmovl ecx, edi
cmovl esi, dword [esp + 0xc]
setl byte [esp + 0xc]
xor eax, eax
push eax
push 0x989680
push ecx
push esi
call fcn.0047de80
mov ebx, eax
mov ecx, edx
imul eax, eax, 0xff676980
add eax, esi
mov edx, 0xcccccccd
mul edx
mov esi, edx
mov eax, ebx
mov edx, 0xf4240
mul edx
shr esi, 3
imul ecx, ecx, 0xf4240
add eax, esi
adc ecx, edx
mov bl, byte [esp + 0xc]
test bl, bl
mov edx, 0
cmove eax, edx
test bl, bl
cmove ecx, edx
xor edi, edi
mov edx, ecx
shld edx, eax, 0xd
mov esi, eax
shl esi, 0xd
xor esi, eax
xor edx, ecx
mov eax, edx
shr eax, 0x11
xor eax, edx
shld edx, esi, 0xf
xor edx, esi
mov ecx, eax
shld ecx, edx, 5
mov esi, edx
shl esi, 5
xor esi, edx
xor ecx, eax
push edi
push 6
push ecx
push esi
call fcn.0047def0
mov edx, dword [esp + 0x14]
mov ebx, eax
cmp edx, dword [esp + 0x80]
jne 0x43f389
lea ecx, [esp + 0x80]
call fcn.0044ba29
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
jmp 0x43f38d
mov ecx, dword [esp + 0x18]
mov dword [ecx + edx*4], ebx
mov edx, dword [esp + 0x88]
inc edx
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x10]
dec eax
jne 0x43f265
mov eax, dword [esp + 0x84]
xor esi, esi
test edx, edx
je 0x43f3c6
xor ecx, ecx
lea esi, [esi + esi*4]
add esi, esi
add esi, dword [eax + ecx*4]
inc ecx
cmp edx, ecx
jne 0x43f3b9
cmp dword [esp + 0x80], 0
je 0x43f3df
push eax
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esp + 0x44]
mov dword [ecx], esi
lea eax, [esp + 0x20]
mov dword [eax], ecx
mov ecx, 2
lea edi, [esp + 0x80]
mov dword [edi], ecx
mov dword [edi + 8], ecx
lea ebx, [esp + 0x1e0]
mov dword [ebx], 0x4a7598
xor esi, esi
inc esi
mov dword [ebx + 4], esi
lea ecx, [esp + 0x80]
mov dword [ebx + 0x10], ecx
mov dword [eax + 4], 0x461cc0
mov dword [edi + 0x10], 0x20
mov dword [ebx + 0x14], esi
mov dword [ebx + 8], eax
xor eax, eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], 4
mov byte [edi + 0x1c], 3
mov dword [ebx + 0xc], esi
lea ecx, [esp + 0x38]
mov edx, ebx
call fcn.004017d0
lea eax, [esp + 0x38]
mov dword [ebx], eax
mov dword [ebx + 4], 0x43f7fb
mov dword [edi], str.Unknown_error_occurred._nCode:
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 0x10], eax
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
lea ebx, [esp + 0x44]
mov ecx, ebx
mov edx, edi
call fcn.004017d0
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
add ecx, eax
mov dword [edi], esi
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
xor eax, eax
mov word [edi + 0xc], ax
lea edi, [esp + 0x20]
lea ebx, [esp + 0x80]
mov ecx, edi
mov edx, ebx
call fcn.00478fe0
mov dword [ebx], esi
lea ecx, [esp + 0x38]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
add ecx, eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
xor eax, eax
mov word [ebx + 0xc], ax
mov esi, dword [edi + 4]
lea edi, [esp + 0x1e0]
lea edx, [esp + 0x80]
mov ecx, edi
call fcn.00478fe0
mov ebx, dword [edi + 4]
push 0x11
push ebx
push esi
xor eax, eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, eax
xor eax, eax
cmp dword [edi], eax
je 0x43f4fc
push ebx
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x20], 0
je 0x43f515
push dword [esp + 0x24]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp esi, 2
je 0x43f7f4
cmp esi, 1
je 0x43f7f4
cmp dword [esp + 0x44], 0
je 0x43f540
push dword [esp + 0x48]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x38], 0
je 0x43f559
push dword [esp + 0x3c]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x10], 0
je 0x43f57a
push dword [esp + 0xc]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea esi, [esp + 0x80]
mov ecx, esi
call fcn.00467f40
mov eax, dword [esi]
cmp eax, 0x80000000
jne 0x43f5a6
lea eax, [esp + 0x84]
push eax
call fcn.004710f6
add esp, 4
jmp 0x43f244
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ecx, esi
call fcn.0046d2c0
test eax, eax
je 0x43f76f
mov edi, edx
mov dword [esp + 0x1c], esi
lea ebx, [esp + 0x1e0]
mov ecx, ebx
mov edx, eax
push edi
call fcn.0046d910
add esp, 4
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
test ecx, ecx
mov dword [esp + 0x34], eax
je 0x43f780
add ecx, eax
mov dword [esp + 0xc], ecx
xor esi, esi
mov edi, eax
mov dword [esp + 0x14], esi
mov dl, byte [edi]
movzx ecx, dl
test dl, dl
js 0x43f611
inc edi
mov dword [esp + 0x10], edi
jmp 0x43f66a
and ecx, 0x1f
movzx esi, byte [edi + 1]
and esi, 0x3f
cmp dl, 0xdf
jbe 0x43f65e
movzx eax, byte [edi + 2]
shl esi, 6
and eax, 0x3f
or eax, esi
cmp dl, 0xf0
jb 0x43f758
movzx ebx, byte [edi + 3]
and ecx, 7
shl ecx, 0x12
shl eax, 6
and ebx, 0x3f
or ebx, eax
or ebx, ecx
cmp ebx, 0x110000
je 0x43f7d0
add edi, 4
mov dword [esp + 0x10], edi
jmp 0x43f66c
add edi, 2
mov dword [esp + 0x10], edi
shl ecx, 6
or ecx, esi
mov ebx, ecx
lea eax, [ebx - 0x30]
xor esi, esi
inc esi
cmp eax, 0xa
jb 0x43f740
xor esi, esi
cmp ebx, 0x80
jb 0x43f740
mov edx, ebx
shl edx, 0xb
xor ecx, ecx
mov esi, 0x27
mov eax, 0x27
shr esi, 1
add esi, ecx
mov edi, dword [esi*4 + 0x499558]
shl edi, 0xb
cmp edi, edx
je 0x43f6bf
cmp edi, edx
cmova eax, esi
lea esi, [esi + 1]
cmovb ecx, esi
mov esi, eax
sub esi, ecx
ja 0x43f69a
jmp 0x43f6c2
inc esi
mov ecx, esi
cmp ecx, 0x26
ja 0x43f7e5
jne 0x43f6d9
mov eax, 0x25
mov edx, 0x113
jmp 0x43f6ee
mov edx, dword [ecx*4 + 0x49955c]
shr edx, 0x15
test ecx, ecx
je 0x43f76b
lea eax, [ecx - 1]
mov eax, dword [eax*4 + 0x499558]
mov esi, 0x1fffff
and eax, esi
mov esi, dword [ecx*4 + 0x499558]
shr esi, 0x15
mov ecx, esi
not ecx
add ecx, edx
je 0x43f73d
sub ebx, eax
cmp esi, 0x114
mov ecx, 0x113
cmovae ecx, esi
dec edx
xor eax, eax
cmp ecx, esi
je 0x43f7d6
movzx edi, byte [esi + 0x4995f4]
add eax, edi
cmp eax, ebx
ja 0x43f73d
inc esi
cmp edx, esi
jne 0x43f721
mov esi, edx
and esi, 1
mov eax, dword [esp + 0x14]
add eax, esi
mov esi, eax
mov edi, dword [esp + 0x10]
cmp edi, dword [esp + 0xc]
jne 0x43f5fd
jmp 0x43f782
add edi, 3
mov dword [esp + 0x10], edi
shl ecx, 0xc
or eax, ecx
mov ebx, eax
jmp 0x43f66c
xor eax, eax
jmp 0x43f6fc
cmp dword [esp + 0x18], 0
je 0x43f244
push esi
jmp 0x43f236
xor esi, esi
test dword [esp + 0x1e0], 0x7fffffff
je 0x43f7a1
push dword [esp + 0x34]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x1c]
je 0x43f7bb
push eax
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp esi, 5
ja 0x43f244
jmp 0x43f559
mov eax, ecx
jmp 0x43ee36
mov esi, dword [esp + 0x14]
jmp 0x43f782
mov edx, 0x113
push 0x4962ec
call fcn.0048d350
mov edx, 0x27
push 0x4962dc
call fcn.0048d350
xor ecx, ecx
call fcn.0046dcf0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
mov edx, dword [eax + 4]
push dword [eax + 8]
call fcn.00403d50
add esp, 4
ret