Function at 0x4027c0
Capabilities:
Print debug messages
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x43e0b8
mov eax, dword fs:[0]
push eax
sub esp, 0x8b4
mov eax, dword [0x451d80]
xor eax, esp
mov dword [esp + 0x8b0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x451d80]
xor eax, esp
push eax
lea eax, [esp + 0x8c8]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8dc]
mov ebp, dword [esp + 0x8d8]
xor ebx, ebx
push 0x7fe
mov edi, ecx
lea ecx, [esp + 0xca]
push ebx
push ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], ebx
mov word [esp + 0xd0], bx
call fcn.0042a080
add esp, 0xc
push 0x400
lea edx, [esp + 0xc8]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, ebx
je 0x402d3a
lea eax, [esp + 0xc4]
push 0x444a3c
push eax
call fcn.00426ab5
mov esi, eax
add esp, 8
cmp esi, ebx
mov dword [esp + 0x38], esi
je 0x402d3a
push ebx
push pe_overlay
push esi
mov dword [esp + 0x28], ebx
call fcn.00426b4f
push esi
push 1
lea ecx, [esp + 0x30]
push 4
push ecx
call fcn.00426e70
mov eax, dword [esp + 0x38]
add esp, 0x1c
cmp eax, ebx
jle 0x402d31
push eax
call fcn.0041926e
mov edx, dword [esp + 0x20]
push esi
push edx
mov ebx, eax
push 1
push ebx
mov dword [esp + 0x40], ebx
call fcn.00426e70
add esp, 0x14
lea ecx, [esp + 0x5c]
call fcn.00416950
push 0
push 0
push ebx
lea ecx, [esp + 0x68]
mov dword [esp + 0x8dc], 0
call fcn.00418640
push str.data
lea ecx, [esp + 0x60]
call fcn.00415ed0
mov esi, eax
test esi, esi
je 0x402d07
push str.link
mov ecx, esi
call fcn.00415ed0
test eax, eax
je 0x402d07
mov ecx, eax
mov dword [esp + 0x34], 1
call fcn.00415fa0
push eax
mov ecx, edi
call fcn.00403bb0
push str.registered_from
mov ecx, esi
call fcn.00415ed0
mov edi, eax
test edi, edi
je 0x402d07
call fcn.004229c3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x402952
push 0x80004005
call fcn.00403a40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x8d0], 1
call fcn.004229c3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x402984
push 0x80004005
call fcn.00403a40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x8d0], 2
call fcn.004229c3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4029b6
push 0x80004005
call fcn.00403a40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x8d0], 3
call fcn.004229c3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4029e8
push 0x80004005
call fcn.00403a40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x30], ebx
push 0x444a60
lea ecx, [esp + 0x24]
mov byte [esp + 0x8d4], 4
call fcn.00403ea0
push 3
add ebp, 0x218
push 0x444a60
mov ecx, ebp
mov byte [esp + 0x8d8], 5
call fcn.00403de0
push str.trans_id
mov ecx, edi
call fcn.00415ed0
mov esi, eax
test esi, esi
je 0x402a58
mov ecx, esi
call fcn.00415fa0
test eax, eax
je 0x402a58
mov ecx, esi
call fcn.00415fa0
push eax
lea ecx, [esp + 0x28]
call fcn.00403bb0
push str.offer_id
mov ecx, edi
call fcn.00415ed0
mov esi, eax
test esi, esi
je 0x402a86
mov ecx, esi
call fcn.00415fa0
test eax, eax
je 0x402a86
mov ecx, esi
call fcn.00415fa0
push eax
lea ecx, [esp + 0x1c]
call fcn.00403bb0
push str.vendor_id
mov ecx, edi
call fcn.00415ed0
mov esi, eax
test esi, esi
je 0x402ab4
mov ecx, esi
call fcn.00415fa0
test eax, eax
je 0x402ab4
mov ecx, esi
call fcn.00415fa0
push eax
lea ecx, [esp + 0x2c]
call fcn.00403bb0
push str.game_abbr
mov ecx, edi
call fcn.00415ed0
mov esi, eax
test esi, esi
je 0x402af5
mov ecx, esi
call fcn.00415fa0
test eax, eax
je 0x402af5
mov ecx, esi
call fcn.00415fa0
push eax
mov ecx, ebp
call fcn.00403bb0
mov ecx, dword [ebp]
cmp dword [ecx - 0xc], 0
jne 0x402af5
push 0x444a60
mov ecx, ebp
call fcn.004041f0
push str.region
mov ecx, edi
call fcn.00415ed0
mov esi, eax
test esi, esi
je 0x402b27
mov ecx, esi
call fcn.00415fa0
test eax, eax
je 0x402b27
mov ecx, esi
call fcn.00415fa0
push eax
lea ecx, [esp + 0x34]
call fcn.00403bb0
mov ebx, dword [esp + 0x30]
push str.get_params
mov ecx, edi
call fcn.00415ed0
mov esi, eax
test esi, esi
je 0x402bf2
mov ecx, esi
call fcn.00415fa0
test eax, eax
je 0x402bf2
mov ecx, esi
call fcn.00415fa0
push eax
lea ecx, [esp + 0xac]
call fcn.00403270
mov byte [esp + 0x8d0], 6
cmp dword [esp + 0xbc], 0
jne 0x402b85
push 3
push 0x444aac
lea ecx, [esp + 0xb0]
call fcn.00403520
mov eax, dword [esp + 0xac]
mov esi, 0x10
cmp dword [esp + 0xc0], esi
jae 0x402ba1
lea eax, [esp + 0xac]
mov edx, dword [esp + 0xbc]
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.00405010
add esp, 8
mov byte [esp + 0x8d0], 7
cmp dword [eax + 0x18], esi
jb 0x402bc8
mov eax, dword [eax + 4]
jmp 0x402bcb
add eax, 4
push eax
lea ecx, [esp + 0x24]
call fcn.00403bb0
lea ecx, [esp + 0x40]
call fcn.004032b0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x8d0], 5
call fcn.004032b0
mov esi, dword [esp + 0x24]
cmp dword [esi - 0xc], 0
mov edi, dword [esp + 0x18]
je 0x402c47
cmp dword [edi - 0xc], 0
je 0x402c47
mov eax, dword [esp + 0x28]
cmp dword [eax - 0xc], 0
je 0x402c47
cmp dword [ebx - 0xc], 0
je 0x402c47
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp]
push ecx
push edx
push ebx
push eax
push edi
push esi
mov esi, dword [esp + 0x54]
push 0x444ab0
push esi
call fcn.00403e80
add esp, 0x20
mov ecx, esi
call fcn.00403250
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, dword [esp + 0x24]
mov byte [esp + 0x8d0], 4
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c6f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x8d0], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c93
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x8d0], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402cbb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x8d0], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402cdf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x8d0], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402d03
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x2c]
lea ecx, [esp + 0x5c]
call fcn.00415e00
push ebx
call fcn.00419273
add esp, 4
lea ecx, [esp + 0x5c]
mov dword [esp + 0x8d0], 0xffffffff
call fcn.00401610
mov esi, dword [esp + 0x38]
push esi
call fcn.00426efd
add esp, 4
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x8c8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x8b0]
xor ecx, esp
call fcn.0042655f
add esp, 0x8c0
ret 8