Function at 0x46e588
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x298
push 0
push 0
dec ecx
jne 0x46e591
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00404604
mov eax, dword [ebp - 0xc]
call fcn.00404604
xor eax, eax
push ebp
push 0x46f613
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x472550]
cmp dword [eax], 0
je 0x46f321
mov eax, dword [0x472180]
cmp dword [eax], 0
je 0x46f321
mov eax, dword [ebp - 0xc]
call fcn.0045bc18
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 8]
call fcn.00404614
push eax
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x46f321
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_GetFileSize
mov dword [ebp - 0x18], eax
mov eax, dword [0x4721d4]
inc dword [eax]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
xor edx, edx
call fcn.0042fd64
mov esi, 0xa00000
mov dword [ebp - 0x20], esi
push esi
call fcn.00405db0
pop ecx
mov ebx, eax
mov dword [ebp - 0x30], 0xa00000
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00405db0
pop ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], 0x20
cmp dword [ebp - 0x18], 0x20
jae 0x46e679
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
push 0
push 0
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_SetFilePointer
mov edi, ebx
mov eax, edi
xor ecx, ecx
mov edx, esi
call fcn.00402d38
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_ReadFile
lea eax, [ebp - 0x60]
call fcn.00404154
xor eax, eax
mov dword [ebp - 0x44], eax
mov edi, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x28], eax
test edi, edi
jbe 0x46e706
inc dword [ebp - 0x28]
dec edi
mov al, byte [ebx + edi]
mov byte [ebp - 0x3d], al
xor eax, eax
mov al, byte [ebp - 0x3d]
cmp eax, 0x30
jl 0x46e706
cmp eax, 0x39
jg 0x46e706
lea eax, [ebp - 0x12bc]
mov dl, byte [ebp - 0x3d]
call fcn.0040433c
mov edx, dword [ebp - 0x12bc]
lea eax, [ebp - 0x60]
mov ecx, dword [ebp - 0x60]
call fcn.00404460
inc dword [ebp - 0x44]
test edi, edi
ja 0x46e6c7
xor eax, eax
mov dword [ebp - 0x84], eax
mov eax, dword [0x472454]
call fcn.00404154
xor eax, eax
mov dword [ebp - 0x48], eax
xor edi, edi
cmp dword [ebp - 0x44], 0
jle 0x46e72f
mov eax, dword [ebp - 0x60]
call fcn.00408800
mov edi, eax
test edi, edi
jbe 0x46e89d
mov eax, dword [ebp - 0x28]
add eax, edi
cmp eax, dword [ebp - 0x18]
jae 0x46e89d
cmp esi, edi
ja 0x46e75f
push ebx
call fcn.00405dc0
pop ecx
lea esi, [edi + 0x400]
push esi
call fcn.00405db0
pop ecx
mov ebx, eax
mov dword [ebp - 0x1c], edi
push 0
push 0
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_SetFilePointer
mov eax, ebx
xor ecx, ecx
mov edx, esi
call fcn.00402d38
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push ebx
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_ReadFile
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov edx, dword [ebp - 0x2c]
call fcn.00402d38
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push ebx
mov eax, dword [0x472550]
mov eax, dword [eax]
call eax
mov edi, eax
test edi, edi
jle 0x46e7f6
lea eax, [ebp - 0x12c4]
mov edx, dword [ebp - 0x3c]
call fcn.0040434c
mov eax, dword [ebp - 0x12c4]
lea edx, [ebp - 0x12c0]
call fcn.00408424
mov edx, dword [ebp - 0x12c0]
mov eax, dword [0x472454]
call fcn.004041a8
mov eax, dword [0x472454]
mov eax, dword [eax]
call fcn.00404414
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x64]
mov edx, 0x46f62c
call fcn.004041ec
mov eax, dword [ebp - 0x64]
call fcn.00404414
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x48]
jge 0x46e885
mov eax, ebx
xor ecx, ecx
mov edx, esi
call fcn.00402d38
mov eax, dword [0x472454]
mov eax, dword [eax]
call fcn.00404614
mov edx, eax
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x4c]
add edx, eax
mov ecx, dword [ebp - 0x4c]
mov eax, ebx
call fcn.00408e08
lea eax, [ebp - 0x64]
mov edx, ebx
call fcn.0040434c
lea eax, [ebp - 0x12c8]
mov edx, ebx
call fcn.0040434c
mov edx, dword [ebp - 0x12c8]
mov eax, 0x46f62c
call fcn.004082f0
test al, al
je 0x46e885
mov dword [ebp - 0x84], 0xffffffff
cmp esi, dword [ebp - 0x20]
je 0x46e89d
push ebx
call fcn.00405dc0
pop ecx
mov esi, dword [ebp - 0x20]
push esi
call fcn.00405db0
pop ecx
mov ebx, eax
cmp dword [ebp - 0x84], 0
je 0x46f300
lea eax, [ebp - 0xb2]
xor ecx, ecx
mov edx, 0x21
call fcn.00402d38
push 0x20
push 0x21
lea eax, [ebp - 0xb2]
push eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [0x472454]
mov eax, dword [eax]
call fcn.00404614
push eax
mov eax, dword [0x472180]
mov eax, dword [eax]
call eax
push dword [ebp - 0xc]
lea eax, [ebp - 0x12cc]
lea edx, [ebp - 0xb2]
mov ecx, 0x22
call fcn.004043c4
push dword [ebp - 0x12cc]
push 0x46f640
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004044d4
mov eax, dword [0x472560]
mov edx, dword [ebp - 0xc]
call fcn.004041a8
mov eax, dword [ebp - 0xc]
call fcn.0045bc18
mov ecx, dword [0x472408]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x466c98]
call fcn.0046b3cc
mov dword [ebp - 0x88], eax
mov dl, 1
mov eax, dword [0x416874]
call fcn.004032f4
mov dword [ebp - 0x8c], eax
mov eax, dword [0x472454]
mov eax, dword [eax]
call fcn.00404614
mov edx, eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax]
call dword [edi + 0x10]
xor ecx, ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x88]
call fcn.0046c16c
mov edx, 0x46f648
mov eax, dword [ebp - 0x88]
call fcn.0046dcf4
mov dl, 1
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 0x8c]
call fcn.00403324
lea edx, [ebp - 0x12d4]
mov eax, dword [ebp - 0x88]
call fcn.0046ce74
mov eax, dword [ebp - 0x12d4]
lea edx, [ebp - 0x12d0]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x12d0]
push eax
lea eax, [ebp - 0x12e4]
mov edx, 0x46f65c
call fcn.004139b4
lea edx, [ebp - 0x12e4]
lea ecx, [ebp - 0x90]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
cmp dword [ebp - 0x90], 0
lea edx, [ebp - 0x12ec]
mov eax, dword [ebp - 0x88]
call fcn.0046ce74
mov eax, dword [ebp - 0x12ec]
lea edx, [ebp - 0x12e8]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x12e8]
push eax
lea eax, [ebp - 0x12fc]
mov edx, 0x46f65c
call fcn.004139b4
lea edx, [ebp - 0x12fc]
lea ecx, [ebp - 0x90]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
cmp dword [ebp - 0x90], 0
je 0x46ea9b
lea edx, [ebp - 0x1304]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x1304]
push eax
lea eax, [ebp - 0x1314]
mov edx, 0x46f670
call fcn.004139b4
lea edx, [ebp - 0x1314]
lea ecx, [ebp - 0x1300]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov edx, dword [ebp - 0x1300]
lea eax, [ebp - 0x90]
call fcn.00405c9c
cmp dword [ebp - 0x90], 0
je 0x46ec4b
mov eax, dword [0x4723c8]
cmp dword [eax], 0
jg 0x46ec4b
mov eax, dword [0x472408]
mov eax, dword [eax]
call fcn.0045a554
lea edx, [ebp - 0x1318]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 0x1318]
mov edx, 0x46f680
call fcn.00404aec
je 0x46eb0f
lea edx, [ebp - 0x131c]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x90]
mov edx, dword [ebp - 0x131c]
lea eax, [ebp - 0x90]
call fcn.00405c9c
jmp 0x46ec3e
lea edx, [ebp - 0x1338]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x1338]
push eax
lea eax, [ebp - 0x1348]
mov edx, 0x46f69c
call fcn.004139b4
lea edx, [ebp - 0x1348]
lea ecx, [ebp - 0x1334]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x1334]
lea edx, [ebp - 0x1330]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x1330]
lea eax, [ebp - 0x1320]
call fcn.0041282c
mov eax, dword [ebp - 0x1320]
lea edx, [ebp - 0x70]
call fcn.0045bf9c
lea edx, [ebp - 0x1364]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x1364]
push eax
lea eax, [ebp - 0x1374]
mov edx, 0x46f6b0
call fcn.004139b4
lea edx, [ebp - 0x1374]
lea ecx, [ebp - 0x1360]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x1360]
lea edx, [ebp - 0x135c]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x135c]
lea eax, [ebp - 0x134c]
call fcn.0041282c
mov eax, dword [ebp - 0x134c]
lea edx, [ebp - 0x78]
call fcn.0045bf9c
lea edx, [ebp - 0x1378]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x90]
mov edx, dword [ebp - 0x1378]
lea eax, [ebp - 0x90]
call fcn.00405c9c
mov eax, dword [ebp - 0x78]
call fcn.00408800
dec eax
jne 0x46ec3e
mov eax, dword [ebp - 0x70]
call fcn.00408800
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x28], eax
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x320]
mov eax, edi
call fcn.0042fb8c
mov edx, eax
inc edx
mov eax, edi
call fcn.0042fd64
cmp dword [ebp - 0x90], 0
jne 0x46eaa8
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x18]
jae 0x46ec61
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
lea edx, [ebp - 0x1380]
mov eax, dword [ebp - 0x88]
call fcn.0046ce74
mov eax, dword [ebp - 0x1380]
lea edx, [ebp - 0x137c]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x137c]
push eax
lea eax, [ebp - 0x1390]
mov edx, 0x46f65c
call fcn.004139b4
lea edx, [ebp - 0x1390]
lea ecx, [ebp - 0x90]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
cmp dword [ebp - 0x90], 0
je 0x46ed00
lea edx, [ebp - 0x1398]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x1398]
push eax
lea eax, [ebp - 0x13a8]
mov edx, 0x46f670
call fcn.004139b4
lea edx, [ebp - 0x13a8]
lea ecx, [ebp - 0x1394]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov edx, dword [ebp - 0x1394]
lea eax, [ebp - 0x90]
call fcn.00405c9c
cmp dword [ebp - 0x90], 0
je 0x46f2f5
mov eax, dword [0x4723c8]
cmp dword [eax], 0
jg 0x46f2f5
lea edx, [ebp - 0x13ac]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 0x13ac]
mov edx, 0x46f680
call fcn.00404aec
je 0x46ed68
lea edx, [ebp - 0x13b0]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x90]
mov edx, dword [ebp - 0x13b0]
lea eax, [ebp - 0x90]
call fcn.00405c9c
jmp 0x46f2e8
lea eax, [ebp - 0x12b5]
xor ecx, ecx
mov edx, 0x200
call fcn.00402d38
lea edx, [ebp - 0x13cc]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x13cc]
push eax
lea eax, [ebp - 0x13dc]
mov edx, 0x46f6c4
call fcn.004139b4
lea edx, [ebp - 0x13dc]
lea ecx, [ebp - 0x13c8]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x13c8]
lea edx, [ebp - 0x13c4]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x13c4]
lea eax, [ebp - 0x13b4]
call fcn.0041282c
mov eax, dword [ebp - 0x13b4]
lea edx, [ebp - 0x12b5]
mov ecx, 0x200
call fcn.0045be74
mov dword [ebp - 0x5c], eax
lea edx, [ebp - 0x13f8]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x13f8]
push eax
lea eax, [ebp - 0x1408]
mov edx, 0x46f6d8
call fcn.004139b4
lea edx, [ebp - 0x1408]
lea ecx, [ebp - 0x13f4]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x13f4]
lea edx, [ebp - 0x13f0]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x13f0]
lea eax, [ebp - 0x13e0]
call fcn.0041282c
mov eax, dword [ebp - 0x13e0]
lea edx, [ebp - 0x68]
call fcn.0045bf9c
lea edx, [ebp - 0x1424]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x1424]
push eax
lea eax, [ebp - 0x1434]
mov edx, 0x46f69c
call fcn.004139b4
lea edx, [ebp - 0x1434]
lea ecx, [ebp - 0x1420]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x1420]
lea edx, [ebp - 0x141c]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x141c]
lea eax, [ebp - 0x140c]
call fcn.0041282c
mov eax, dword [ebp - 0x140c]
lea edx, [ebp - 0x70]
call fcn.0045bf9c
lea edx, [ebp - 0x1450]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1460]
mov edx, 0x46f6e8
call fcn.004139b4
lea edx, [ebp - 0x1460]
lea ecx, [ebp - 0x144c]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x144c]
lea edx, [ebp - 0x1448]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x1448]
lea eax, [ebp - 0x1438]
call fcn.0041282c
mov eax, dword [ebp - 0x1438]
lea edx, [ebp - 0x6c]
call fcn.0045bf9c
lea edx, [ebp - 0x147c]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x147c]
push eax
lea eax, [ebp - 0x148c]
mov edx, 0x46f6fc
call fcn.004139b4
lea edx, [ebp - 0x148c]
lea ecx, [ebp - 0x1478]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x1478]
lea edx, [ebp - 0x1474]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x1474]
lea eax, [ebp - 0x1464]
call fcn.0041282c
mov eax, dword [ebp - 0x1464]
lea edx, [ebp - 0x74]
call fcn.0045bf9c
lea edx, [ebp - 0x14a8]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x14a8]
push eax
lea eax, [ebp - 0x14b8]
mov edx, 0x46f6b0
call fcn.004139b4
lea edx, [ebp - 0x14b8]
lea ecx, [ebp - 0x14a4]
pop eax
mov edi, dword [eax]
call dword [edi + 0x10]
mov eax, dword [ebp - 0x14a4]
lea edx, [ebp - 0x14a0]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea edx, [ebp - 0x14a0]
lea eax, [ebp - 0x1490]
call fcn.0041282c
mov eax, dword [ebp - 0x1490]
lea edx, [ebp - 0x78]
call fcn.0045bf9c
lea edx, [ebp - 0x14bc]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
call dword [ecx + 0x90]
mov edx, dword [ebp - 0x14bc]
lea eax, [ebp - 0x90]
call fcn.00405c9c
mov eax, dword [ebp - 0x78]
call fcn.00408800
dec eax
jne 0x46f2e8
lea eax, [ebp - 0x14c0]
lea edx, [ebp - 0x12b5]
mov ecx, 0x201
call fcn.004043c4
mov edx, dword [ebp - 0x14c0]
lea eax, [ebp - 0x80]
mov ecx, 0x46f710
call fcn.00404460
mov eax, dword [ebp - 0x70]
call fcn.00408800
mov dword [ebp - 0x38], eax
cmp esi, dword [ebp - 0x38]
ja 0x46f087
push ebx
call fcn.00405dc0
pop ecx
mov esi, dword [ebp - 0x38]
add esi, 0x400
push esi
call fcn.00405db0
pop ecx
mov ebx, eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x18]
jae 0x46f299
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
push 0
push 0
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_SetFilePointer
mov edi, ebx
mov eax, edi
xor ecx, ecx
mov edx, esi
call fcn.00402d38
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_ReadFile
mov edi, dword [ebp - 0x1c]
lea edi, [edi + edi*8]
cmp edi, dword [ebp - 0x2c]
jb 0x46f0f9
mov eax, dword [ebp - 0x3c]
push eax
call fcn.00405dc0
pop ecx
add edi, 0x400
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00405db0
pop ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov edx, dword [ebp - 0x2c]
call fcn.00402d38
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push ebx
mov eax, dword [0x472550]
mov eax, dword [eax]
call eax
mov edi, eax
test edi, edi
jle 0x46f274
lea eax, [ebp - 0x7c]
mov edx, dword [ebp - 0xc]
call fcn.004041ec
mov eax, dword [ebp - 0x6c]
mov edx, 0x46f640
call fcn.00404560
je 0x46f16f
mov eax, dword [ebp - 0x6c]
mov edx, 0x46f728
call fcn.00404560
je 0x46f16f
push dword [ebp - 0xc]
push dword [ebp - 0x6c]
push 0x46f640
lea eax, [ebp - 0x7c]
mov edx, 3
call fcn.004044d4
mov eax, dword [ebp - 0x7c]
call fcn.0045bc18
lea eax, [ebp - 0x8b3]
xor ecx, ecx
mov edx, 0x800
call fcn.00402d38
mov eax, dword [ebp - 0x7c]
call fcn.00404414
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x7c]
call fcn.00404614
mov edx, eax
lea eax, [ebp - 0x8b3]
mov ecx, dword [ebp - 0x58]
call fcn.00406fb0
lea edx, [ebp - 0x12b5]
mov eax, dword [ebp - 0x58]
lea eax, [ebp + eax - 0x8b3]
mov ecx, dword [ebp - 0x5c]
call fcn.00406fb0
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x58], eax
lea eax, [ebp - 0x10b4]
xor ecx, ecx
mov edx, 0x800
call fcn.00402d38
push 0x400
lea eax, [ebp - 0x10b4]
push eax
mov eax, dword [ebp - 0x58]
push eax
lea eax, [ebp - 0x8b3]
push eax
push 0
push 0xfde9
call sub.kernel32.dll_MultiByteToWideChar_1
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x14], 0xffffffff
cmp dword [ebp - 0x50], 0
jle 0x46f228
push 0
push 0x80
push 2
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0x10b4]
push eax
call sub.kernel32.dll_CreateFileW
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
je 0x46f274
push 0
lea eax, [ebp - 0x24]
push eax
push edi
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_WriteFile_1
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_CloseHandle
lea eax, [ebp - 0x14c4]
lea edx, [ebp - 0x12b5]
mov ecx, 0x201
call fcn.004043c4
mov edx, dword [ebp - 0x14c4]
lea eax, [ebp - 0x80]
mov ecx, 0x46f734
call fcn.00404460
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x30]
je 0x46f299
mov eax, dword [ebp - 0x3c]
push eax
call fcn.00405dc0
pop ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00405db0
pop ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x34], eax
cmp esi, dword [ebp - 0x20]
je 0x46f2b7
push ebx
call fcn.00405dc0
pop ecx
mov esi, dword [ebp - 0x20]
push esi
call fcn.00405db0
pop ecx
mov ebx, eax
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x320]
mov eax, edi
call fcn.0042fbc4
mov edx, eax
inc edx
mov eax, edi
call fcn.0042fd74
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov eax, dword [eax + 0x220]
mov edx, dword [ebp - 0x80]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp dword [ebp - 0x90], 0
jne 0x46ed0d
mov eax, dword [ebp - 0x88]
call fcn.00403324
mov eax, dword [ebp - 0x3c]
push eax
call fcn.00405dc0
pop ecx
push ebx
call fcn.00405dc0
pop ecx
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x4721d4]
dec dword [eax]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46f61d
lea eax, [ebp - 0x14c4]
mov edx, 2
call fcn.00404178
lea eax, [ebp - 0x14bc]
call fcn.00405c84
lea eax, [ebp - 0x14b8]
call fcn.0040f550
lea eax, [ebp - 0x14a8]
call fcn.00405c84
lea eax, [ebp - 0x14a4]
call fcn.00405c84
lea eax, [ebp - 0x14a0]
call fcn.0040f550
lea eax, [ebp - 0x1490]
call fcn.00404154
lea eax, [ebp - 0x148c]
call fcn.0040f550
lea eax, [ebp - 0x147c]
call fcn.00405c84
lea eax, [ebp - 0x1478]
call fcn.00405c84
lea eax, [ebp - 0x1474]
call fcn.0040f550
lea eax, [ebp - 0x1464]
call fcn.00404154
lea eax, [ebp - 0x1460]
call fcn.0040f550
lea eax, [ebp - 0x1450]
call fcn.00405c84
lea eax, [ebp - 0x144c]
call fcn.00405c84
lea eax, [ebp - 0x1448]
call fcn.0040f550
lea eax, [ebp - 0x1438]
call fcn.00404154
lea eax, [ebp - 0x1434]
call fcn.0040f550
lea eax, [ebp - 0x1424]
call fcn.00405c84
lea eax, [ebp - 0x1420]
call fcn.00405c84
lea eax, [ebp - 0x141c]
call fcn.0040f550
lea eax, [ebp - 0x140c]
call fcn.00404154
lea eax, [ebp - 0x1408]
call fcn.0040f550
lea eax, [ebp - 0x13f8]
call fcn.00405c84
lea eax, [ebp - 0x13f4]
call fcn.00405c84
lea eax, [ebp - 0x13f0]
call fcn.0040f550
lea eax, [ebp - 0x13e0]
call fcn.00404154
lea eax, [ebp - 0x13dc]
call fcn.0040f550
lea eax, [ebp - 0x13cc]
call fcn.00405c84
lea eax, [ebp - 0x13c8]
call fcn.00405c84
lea eax, [ebp - 0x13c4]
call fcn.0040f550
lea eax, [ebp - 0x13b4]
call fcn.00404154
lea eax, [ebp - 0x13b0]
call fcn.00405c84
lea eax, [ebp - 0x13ac]
call fcn.00404860
lea eax, [ebp - 0x13a8]
call fcn.0040f550
lea eax, [ebp - 0x1398]
call fcn.00405c84
lea eax, [ebp - 0x1394]
call fcn.00405c84
lea eax, [ebp - 0x1390]
call fcn.0040f550
lea eax, [ebp - 0x1380]
call fcn.00405c84
lea eax, [ebp - 0x137c]
call fcn.00405c84
lea eax, [ebp - 0x1378]
call fcn.00405c84
lea eax, [ebp - 0x1374]
call fcn.0040f550
lea eax, [ebp - 0x1364]
call fcn.00405c84
lea eax, [ebp - 0x1360]
call fcn.00405c84
lea eax, [ebp - 0x135c]
call fcn.0040f550
lea eax, [ebp - 0x134c]
call fcn.00404154
lea eax, [ebp - 0x1348]
call fcn.0040f550
lea eax, [ebp - 0x1338]
call fcn.00405c84
lea eax, [ebp - 0x1334]
call fcn.00405c84
lea eax, [ebp - 0x1330]
call fcn.0040f550
lea eax, [ebp - 0x1320]
call fcn.00404154
lea eax, [ebp - 0x131c]
call fcn.00405c84
lea eax, [ebp - 0x1318]
call fcn.00404860
lea eax, [ebp - 0x1314]
call fcn.0040f550
lea eax, [ebp - 0x1304]
call fcn.00405c84
lea eax, [ebp - 0x1300]
call fcn.00405c84
lea eax, [ebp - 0x12fc]
call fcn.0040f550
lea eax, [ebp - 0x12ec]
call fcn.00405c84
lea eax, [ebp - 0x12e8]
call fcn.00405c84
lea eax, [ebp - 0x12e4]
call fcn.0040f550
lea eax, [ebp - 0x12d4]
call fcn.00405c84
lea eax, [ebp - 0x12d0]
call fcn.00405c84
lea eax, [ebp - 0x12cc]
mov edx, 5
call fcn.00404178
lea eax, [ebp - 0x90]
call fcn.00405c84
lea eax, [ebp - 0x80]
mov edx, 9
call fcn.00404178
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404178
ret