Function at 0x42df50
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 0x2c]
sub esp, 0x290
mov ecx, dword [esp + 0x2b0]
mov edx, dword [esp + 0x2ac]
push ebx
mov ebx, dword [esp + 0x2b8]
push ebp
push esi
push edi
mov edi, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2ac]
push eax
mov eax, dword [esp + 0x2bc]
mov esi, dword [esp + 0x2a8]
push edi
push ebx
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.0042df30
add esp, 0x2c
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.004f35c0
test ebp, ebp
je 0x42e1df
mov al, byte [esp + 0x2cc]
test al, 1
je 0x42e1df
mov dl, byte [esp + 0x2b0]
mov cl, bl
shr cl, 3
and cl, 4
and dl, 4
xor cl, dl
je 0x42e1df
cmp byte [0x817710], 0x66
je 0x42e1df
mov ecx, dword [0x78ca5c]
test ecx, ecx
jne 0x42e1df
cmp al, 0x55
jne 0x42e1df
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 0x42e160
mov edx, dword [0x748004]
push 0x40000
push 0
push edx
lea eax, [esp + 0xac]
push 0xffffffffffffffff
push eax
call fcn.0042b5a0
mov eax, dword [0x78ca5c]
add esp, 0x14
test eax, eax
jne 0x42e1b5
mov ecx, dword [0x748004]
push 0x10
push ecx
call fcn.004f3450
add esp, 8
push 0
push 0
push 0x671120
call fcn.004f6430
or eax, 0x80000000
push 0
push eax
push 0x671120
call fcn.004f6640
mov edi, dword [esp + 0x2e0]
add esp, 0x18
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edi
push ebx
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.0042ec60
mov eax, dword [0x85ac64]
add esp, 0x30
test eax, eax
je 0x42e23c
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.00416c70
mov eax, dword [esi + 0x2cc]
add esp, 0xc
test eax, eax
jne 0x42e3dc
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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.0042ce40
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e2b7
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x141c]
test eax, eax
je 0x42e31c
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edi
push ebx
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.00417fc0
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e31c
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3be0]
test eax, eax
je 0x42e381
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.004215b0
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e381
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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.0042d120
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e3dc
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3ae8]
test eax, eax
je 0x42e441
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edi
push ebx
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.004385e0
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e441
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x42e4a6
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.0042d440
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e4a6
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3ae8]
test eax, eax
je 0x42e7d4
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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.0043a160
mov edx, dword [esp + 0x2f8]
mov eax, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2e8]
push edx
mov edx, dword [esp + 0x2e8]
push edi
push ebx
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.004386d0
mov eax, dword [esp + 0x324]
mov ecx, dword [esp + 0x318]
mov edx, dword [esp + 0x314]
add esp, 0x58
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.004386d0
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2ec]
mov eax, dword [esp + 0x2e8]
push ecx
mov ecx, dword [esp + 0x2e8]
push edi
push ebx
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.004390d0
mov edx, dword [esp + 0x324]
add esp, 0x58
push edx
push edi
mov eax, dword [esp + 0x2c8]
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
push ebx
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.0043a1b0
mov eax, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2e8]
push eax
mov eax, dword [esp + 0x2e8]
push edi
push ebx
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.00439260
mov ecx, dword [esp + 0x324]
mov edx, dword [esp + 0x318]
mov eax, dword [esp + 0x314]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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.00439390
mov eax, dword [esi + 0x2cc]
add esp, 0x2c
test eax, eax
je 0x42e738
mov eax, dword [0x737940]
test eax, eax
je 0x42e6e2
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edi
push ebx
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.00428b10
add esp, 0x2c
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.00428d90
add esp, 0x2c
cmp eax, 0xffffffff
jne 0x42e738
pop edi
pop esi
pop ebp
or eax, eax
pop ebx
add esp, 0x290
ret
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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.00439550
mov edx, dword [esp + 0x2f8]
mov eax, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2e8]
push edx
mov edx, dword [esp + 0x2e8]
push edi
push ebx
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.00439e50
mov eax, dword [0x85ac64]
add esp, 0x58
test eax, eax
je 0x42e7d4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [0x737940]
test eax, eax
je 0x42e846
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x42eb0a
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.00428b10
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e846
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x42eb0a
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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.0042d540
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e8af
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3be0]
test eax, eax
je 0x42e914
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edi
push ebx
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.00421400
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42e914
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.00428d90
add esp, 0x2c
cmp eax, 0xffffffff
jne 0x42e96a
pop edi
pop esi
pop ebp
or eax, eax
pop ebx
add esp, 0x290
ret
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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 + 0x1418]
push eax
push ebp
push ecx
push edx
push esi
call fcn.0042cd40
mov eax, dword [0x85ac64]
add esp, 0x30
test eax, eax
je 0x42e9cc
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3be0]
test eax, eax
je 0x42ea38
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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 + 0x1418]
push edx
push ebp
push eax
push ecx
push esi
call fcn.004212f0
mov eax, dword [0x85ac64]
add esp, 0x30
test eax, eax
je 0x42ea38
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x2cc]
test eax, eax
jne 0x42eb0a
mov eax, dword [esi + 0x141c]
test eax, eax
je 0x42eb0a
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edi
push ebx
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.004182b0
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42eaaf
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.00418350
mov eax, dword [0x85ac64]
add esp, 0x2c
test eax, eax
je 0x42eb0a
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3c28]
test eax, eax
je 0x42eb58
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
push ecx
mov ecx, dword [esp + 0x2bc]
push edi
push ebx
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.004279f0
add esp, 0x2c
mov edx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edi
push ebx
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 + 0x1418]
push ecx
push ebp
push edx
push eax
push esi
call fcn.00425f60
mov ecx, dword [esp + 0x2fc]
mov edx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2ec]
push ecx
mov ecx, dword [esp + 0x2ec]
push edi
push ebx
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 + 0x1418]
push eax
push ebp
push ecx
push edx
push esi
call fcn.0042c150
mov eax, dword [0x85ac64]
add esp, 0x60
test eax, eax
je 0x42ec02
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x290
ret
mov eax, dword [esi + 0x3ae8]
test eax, eax
je 0x42ec50
mov eax, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2bc]
push edi
push ebx
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.00439260
add esp, 0x2c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x290
ret