Function at 0x4302f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x290
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2b0]
mov edx, dword [esp + 0x2ac]
push ebx
mov ebx, dword [esp + 0x2c0]
push ebp
push esi
push edi
mov edi, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2ac]
push ebx
mov esi, dword [esp + 0x2a8]
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.004302d0
add esp, 0x2c
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.004dd790
test ebp, ebp
je 0x43057b
test bl, 1
je 0x43057b
mov cl, byte [esp + 0x2c2]
mov dl, byte [esp + 0x2ae]
shr cl, 4
and cl, 1
and dl, 1
xor cl, dl
je 0x43057b
cmp byte [0x6ffe78], 0x66
je 0x43057b
mov eax, dword [0x75e25c]
test eax, eax
jne 0x43057b
mov eax, ebx
and eax, 0x1fff
cmp eax, 0x1998
jne 0x43057b
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 0x43050b
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
mov edi, dword [esp + 0x2fc]
add esp, 0x34
mov edx, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push eax
push ecx
push ebp
push edx
push 0x10
push esi
call fcn.00431000
mov eax, dword [0x7f2fa4]
add esp, 0x30
test eax, eax
je 0x4305d8
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
lea eax, [esi + 0x2d8]
push 0
push eax
push esi
call fcn.00418910
mov eax, dword [esi + 0x2cc]
add esp, 0xc
test eax, eax
jne 0x430778
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
push eax
push ebp
push ecx
push esi
call fcn.0042f1f0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430653
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x142c]
test eax, eax
je 0x4306b8
mov edx, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push eax
push ecx
push ebp
push edx
push esi
call fcn.00419ea0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x4306b8
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3c64]
test eax, eax
je 0x43071d
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.004235f0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x43071d
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
push eax
push ebp
push ecx
push esi
call fcn.0042f4d0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430778
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3b5c]
test eax, eax
je 0x4307dd
mov edx, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push eax
push ecx
push ebp
push edx
push esi
call fcn.0043e560
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x4307dd
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x430842
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0042f7f0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430842
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3b5c]
test eax, eax
je 0x430b70
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
push eax
push ebp
push ecx
push esi
call fcn.004400d0
mov edx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2e8]
push ebx
push edi
push edx
mov edx, dword [esp + 0x2f0]
push eax
mov eax, dword [esp + 0x2f0]
push ecx
mov ecx, dword [esp + 0x2f0]
push edx
mov edx, dword [esp + 0x2ec]
push eax
push ecx
push ebp
push edx
push esi
call fcn.0043e650
mov eax, dword [esp + 0x31c]
mov ecx, dword [esp + 0x318]
mov edx, dword [esp + 0x314]
add esp, 0x58
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0043e650
mov ecx, dword [esp + 0x2f0]
mov edx, dword [esp + 0x2ec]
mov eax, dword [esp + 0x2e8]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2f0]
push edx
mov edx, dword [esp + 0x2f0]
push eax
mov eax, dword [esp + 0x2f0]
push ecx
mov ecx, dword [esp + 0x2ec]
push edx
push eax
push ebp
push ecx
push esi
call fcn.0043f040
mov edx, dword [esp + 0x31c]
add esp, 0x58
push ebx
push edi
mov eax, dword [esp + 0x2c8]
mov ecx, dword [esp + 0x2c4]
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 [esp + 0x2c0]
push eax
push ecx
push ebp
push edx
push esi
call fcn.00440120
mov eax, dword [esp + 0x2f0]
mov ecx, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2e8]
push ebx
push edi
push eax
mov eax, dword [esp + 0x2f0]
push ecx
mov ecx, dword [esp + 0x2f0]
push edx
mov edx, dword [esp + 0x2f0]
push eax
mov eax, dword [esp + 0x2ec]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0043f1d0
mov ecx, dword [esp + 0x31c]
mov edx, dword [esp + 0x318]
mov eax, dword [esp + 0x314]
add esp, 0x58
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
push eax
push ebp
push ecx
push esi
call fcn.0043f300
mov eax, dword [esi + 0x2cc]
add esp, 0x2c
test eax, eax
je 0x430ad4
mov eax, dword [0x704840]
test eax, eax
je 0x430a7e
mov edx, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push eax
push ecx
push ebp
push edx
push esi
call fcn.0042abd0
add esp, 0x2c
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0042aeb0
add esp, 0x2c
cmp eax, 0xffffffff
jne 0x430ad4
pop edi
pop esi
pop ebp
or eax, eax
pop ebx
add esp, 0x290
ret
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
push eax
push ebp
push ecx
push esi
call fcn.0043f4c0
mov edx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2e8]
push ebx
push edi
push edx
mov edx, dword [esp + 0x2f0]
push eax
mov eax, dword [esp + 0x2f0]
push ecx
mov ecx, dword [esp + 0x2f0]
push edx
mov edx, dword [esp + 0x2ec]
push eax
push ecx
push ebp
push edx
push esi
call fcn.0043fdc0
mov eax, dword [0x7f2fa4]
add esp, 0x58
test eax, eax
je 0x430b70
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [0x704840]
test eax, eax
je 0x430be2
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x430ea6
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0042abd0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430be2
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x430ea6
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
push eax
push ebp
push ecx
push esi
call fcn.0042f8f0
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430c4b
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3c64]
test eax, eax
je 0x430cb0
mov edx, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push eax
push ecx
push ebp
push edx
push esi
call fcn.00423440
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430cb0
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0042aeb0
add esp, 0x2c
cmp eax, 0xffffffff
jne 0x430d06
pop edi
pop esi
pop ebp
or eax, eax
pop ebx
add esp, 0x290
ret
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
mov edx, dword [esi + 0x1428]
push eax
push ebp
push ecx
push edx
push esi
call fcn.0042f0f0
mov eax, dword [0x7f2fa4]
add esp, 0x30
test eax, eax
je 0x430d68
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3c64]
test eax, eax
je 0x430dd4
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
mov ecx, dword [esi + 0x1428]
push edx
push ebp
push eax
push ecx
push esi
call fcn.00423330
mov eax, dword [0x7f2fa4]
add esp, 0x30
test eax, eax
je 0x430dd4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x430ea6
mov eax, dword [esi + 0x142c]
test eax, eax
je 0x430ea6
mov edx, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push eax
push ecx
push ebp
push edx
push esi
call fcn.0041a190
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430e4b
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0041a230
mov eax, dword [0x7f2fa4]
add esp, 0x2c
test eax, eax
je 0x430ea6
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3cd4]
test eax, eax
je 0x430ef4
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2c4]
push eax
mov eax, dword [esp + 0x2c4]
push ecx
mov ecx, dword [esp + 0x2c0]
push edx
push eax
push ebp
push ecx
push esi
call fcn.00429ab0
add esp, 0x2c
mov edx, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push eax
mov eax, dword [esi + 0x1428]
push ecx
push ebp
push edx
push eax
push esi
call fcn.00427f80
mov ecx, dword [esp + 0x2f4]
mov edx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2ec]
push ebx
push edi
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 [esp + 0x2f0]
push edx
mov edx, dword [esi + 0x1428]
push eax
push ebp
push ecx
push edx
push esi
call fcn.0042e4e0
mov eax, dword [0x7f2fa4]
add esp, 0x60
test eax, eax
je 0x430f9e
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3b5c]
test eax, eax
je 0x430fec
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push ebx
push edi
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 [esp + 0x2c0]
push ecx
push edx
push ebp
push eax
push esi
call fcn.0043f1d0
add esp, 0x2c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x290
ret