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

Disassembly:
sub esp, 0x290
mov dword [0x71d108], 0
push ebx
push ebp
push esi
push edi
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.004dd790
mov esi, dword [esp + 0x2ac]
mov ebx, dword [esp + 0x2cc]
test esi, esi
je 0x4315cd
test bl, 1
je 0x4315cd
mov al, byte [esp + 0x2c2]
mov cl, byte [esp + 0x2ae]
shr al, 4
and al, 1
and cl, 1
xor al, cl
je 0x4315cd
cmp byte [0x6ffe78], 0x66
je 0x4315cd
mov eax, dword [0x75e25c]
test eax, eax
jne 0x4315cd
mov edx, ebx
and edx, 0x1fff
cmp edx, 0x1998
jne 0x4315cd
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0xa0]
mov dword [esp + 0x10], 0xa05b7dc
mov dword [esp + 0x14], 0x4f12b1fd
mov dword [esp + 0x18], 0x5e13b6ef
mov dword [esp + 0x1c], 0x4e05aded
mov dword [esp + 0x20], 0x5805a9a8
mov dword [esp + 0x24], 0x440fb6fb
mov dword [esp + 0x28], 0x4401bca8
mov dword [esp + 0x2c], 0x460eb0a8
mov dword [esp + 0x30], 0x5803fff1
mov dword [esp + 0x34], 0x4f14beed
mov dword [esp + 0x38], 0xa12b0a8
mov dword [esp + 0x3c], 0x5e09bbed
mov dword [esp + 0x40], 0x4f08aba8
mov dword [esp + 0x44], 0x4609b9a8
mov dword [esp + 0x48], 0x4217ffed
mov dword [esp + 0x4c], 0xa08bce1
mov dword [esp + 0x50], 0x5905b0ec
mov dword [esp + 0x54], 0x5e0fb1a8
mov dword [esp + 0x58], 0x4918baa8
mov dword [esp + 0x5c], 0xa04baed
mov dword [esp + 0x60], 0xa05b7fc
mov dword [esp + 0x64], 0x4f1ab6fb
mov dword [esp + 0x68], 0xa06b0a8
mov dword [esp + 0x6c], 0x6750efbb
mov dword [esp + 0x70], 0x4534ffa6
mov dword [esp + 0x74], 0x4705ada8
mov dword [esp + 0x78], 0xa05a9e7
mov dword [esp + 0x7c], 0x5909b7fc
mov dword [esp + 0x80], 0x4709b3a8
mov dword [esp + 0x84], 0x5e01abe1
mov dword [esp + 0x88], 0x60eb0e1
mov dword [esp + 0x8c], 0x4f0cafa8
mov dword [esp + 0x90], 0xa05ace9
mov dword [esp + 0x94], 0x4307bafa
mov dword [esp + 0x98], 0x5805abfb
mov dword [esp + 0x9c], 0x2a60dfa6
rep stosd dword es:[edi], eax
mov ecx, dword [esp + eax + 0x10]
add eax, 4
xor ecx, 0x2a60df88
cmp eax, 0x90
mov dword [esp + eax + 0x9c], ecx
jl 0x431564
mov edx, dword [0x7150f4]
push 0x40000
push 0
push edx
lea eax, [esp + 0xac]
push 0xffffffffffffffff
push eax
call fcn.0042d900
mov ecx, dword [0x7150f4]
push 0x10
push ecx
call fcn.004dd630
push 0
push 0
push 0x68c7e8
call fcn.004e04f0
or eax, 0x80000000
push 0
push eax
push 0x68c7e8
call fcn.004e0720
add esp, 0x34
mov edi, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x2b4]
push ebx
mov ebx, dword [esp + 0x2c4]
push edi
push ebp
push ebx
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c0]
push ecx
push edx
push esi
mov esi, dword [esp + 0x2c8]
push eax
push 0x10
push esi
call fcn.00431000
add esp, 0x30
test eax, eax
jne 0x431b9b
mov eax, dword [0x7f2fa4]
test eax, eax
jne 0x431b9b
lea ecx, [esi + 0x2d8]
push 0
push ecx
push esi
call fcn.00418910
mov edx, dword [str.CD_XA001]
mov ecx, dword [esp + 0x2d8]
mov dword [esi + 0x6d8], edx
mov eax, dword [0x68d2e4]
mov edx, dword [esp + 0x2c8]
push ecx
mov ecx, dword [esp + 0x2c4]
push edi
mov dword [esi + 0x6dc], eax
mov eax, dword [esp + 0x2cc]
push ebp
push ebx
push edx
mov edx, dword [esp + 0x2d0]
push eax
mov eax, dword [esp + 0x2d0]
push ecx
mov ecx, dword [esp + 0x2d0]
push edx
push eax
push ecx
push esi
call fcn.0042f1f0
mov eax, dword [0x7f2fa4]
add esp, 0x38
test eax, eax
jne 0x431b9b
mov eax, dword [esi + 0x3c64]
test eax, eax
je 0x431708
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
push ecx
push edx
push esi
call fcn.004235f0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
jne 0x431b9b
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2b8]
push eax
mov eax, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
push edx
push eax
push esi
call fcn.0042f4d0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
jne 0x431b9b
mov eax, dword [esi + 0x2d0]
test eax, eax
je 0x43182e
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
push eax
push ecx
push esi
call fcn.004311b0
add esp, 0x2c
test eax, eax
jne 0x431b9b
mov edx, dword [0x71d108]
mov eax, dword [esi + 0x2d4]
cmp edx, eax
jae 0x43182e
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2b8]
push eax
mov eax, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
push edx
push eax
push 1
push esi
call fcn.00431000
add esp, 0x30
test eax, eax
jne 0x431b9b
mov eax, dword [0x7f2fa4]
test eax, eax
jne 0x431b9b
mov ecx, dword [0x71d108]
mov eax, dword [esi + 0x2d4]
cmp ecx, eax
jb 0x4317c3
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esi + 0x1428]
push ecx
push edx
push eax
push esi
call fcn.0042f0f0
mov eax, dword [0x7f2fa4]
add esp, 0x30
test eax, eax
jne 0x431b9b
mov eax, dword [esi + 0x3c64]
test eax, eax
je 0x4318e8
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esi + 0x1428]
push eax
push ecx
push edx
push esi
call fcn.00423330
mov eax, dword [0x7f2fa4]
add esp, 0x30
test eax, eax
jne 0x431b9b
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2b8]
push eax
mov eax, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
push edx
push eax
push esi
call fcn.0042f8f0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
jne 0x431b9b
mov eax, dword [esi + 0x3c64]
test eax, eax
je 0x431994
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
push eax
push ecx
push esi
call fcn.00423440
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
jne 0x431b9b
mov eax, dword [esi + 0x2d0]
test eax, eax
jne 0x4319ea
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
push ecx
push edx
push esi
call fcn.004311b0
add esp, 0x2c
test eax, eax
jne 0x431b9b
mov eax, dword [0x71d108]
mov ecx, dword [0x704808]
cmp eax, ecx
mov dword [0x7150d8], 0
jae 0x431a6d
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2b8]
push eax
mov eax, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
push edx
push eax
push 1
push esi
call fcn.00431000
add esp, 0x30
test eax, eax
jne 0x431b9b
mov eax, dword [0x7f2fa4]
test eax, eax
jne 0x431b9b
mov eax, dword [0x71d108]
mov ecx, dword [0x704808]
cmp eax, ecx
jb 0x431a03
jne 0x431b9b
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esi + 0x1428]
push eax
push ecx
push edx
push esi
call fcn.00427f80
mov eax, dword [esp + 0x2fc]
mov ecx, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2e8]
push eax
mov eax, dword [esp + 0x2e8]
push edi
push ebp
push ebx
push ecx
mov ecx, dword [esp + 0x2f4]
push edx
mov edx, dword [esp + 0x2f4]
push eax
mov eax, dword [esp + 0x2f4]
push ecx
mov ecx, dword [esi + 0x1428]
push edx
push eax
push ecx
push esi
call fcn.0042e4e0
mov eax, dword [0x7f2fa4]
add esp, 0x60
test eax, eax
jne 0x431b9b
mov eax, dword [0x71d108]
mov ecx, dword [esi + 0x3c18]
cmp eax, ecx
jae 0x431b84
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
push edi
push ebp
push ebx
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
push ecx
push edx
push 1
push esi
call fcn.00431000
add esp, 0x30
test eax, eax
jne 0x431b9b
mov eax, dword [0x7f2fa4]
test eax, eax
jne 0x431b9b
mov eax, dword [0x71d108]
mov ecx, dword [esi + 0x3c18]
cmp eax, ecx
jb 0x431b22
mov edx, dword [esi + 0x3c18]
pop edi
sub eax, edx
pop esi
neg eax
pop ebp
pop ebx
sbb eax, eax
add esp, 0x290
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret