Function at 0x401bce
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 8], 0
push 0x40b290
call fcn.004027d4
add esp, 4
push str.___GWDL32_Download_Utility_V1.01__________________n
call fcn.004027d4
add esp, 4
push str.____C__2003_ATOP_Tech._Inc._All_rights_reserved___n
call fcn.004027d4
add esp, 4
push str._n
call fcn.004027d4
add esp, 4
cmp dword [ebp + 8], 2
jle 0x401c7e
push 0x40e480
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
push ecx
call fcn.0040856e
add esp, 8
mov edx, dword [0x40e494]
mov dword [0x40e8c8], edx
mov eax, dword [0x40e8c8]
mov dword [0x40e4a4], eax
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
movsx edx, byte [ecx]
cmp edx, 0x2d
je 0x401cac
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x154], eax
jmp 0x401d23
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
movsx ecx, byte [eax + 1]
mov dword [ebp - 0x280], ecx
mov edx, dword [ebp - 0x280]
sub edx, 0x4f
mov dword [ebp - 0x280], edx
cmp dword [ebp - 0x280], 0x21
ja case.0x401ce8.2
mov ecx, dword [ebp - 0x280]
xor eax, eax
mov al, byte [ecx + 0x4024d0]
jmp dword [eax*4 + 0x4024c4]
mov dword [ebp - 0x274], 1
jmp 0x401d07
jmp 0x401d07
mov dword [ebp - 0x270], 1
mov edx, dword [ebp - 0x150]
sub edx, 1
mov dword [ebp - 0x150], edx
cmp dword [ebp - 0x150], 0
jg 0x401c8a
cmp dword [ebp - 0x154], 0
je 0x401d35
cmp dword [ebp - 0x270], 0
je 0x401d4f
call fcn.00401a50
mov dword [0x40b1e4], 2
mov eax, dword [0x40b1e4]
push eax
call fcn.0040316d
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x284], ecx
cmp dword [ebp - 0x284], 2
je 0x401d7f
cmp dword [ebp - 0x284], 3
je 0x401dd8
cmp dword [ebp - 0x284], 4
je 0x401e30
jmp 0x401e88
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
push eax
lea ecx, [ebp - 0x108]
push ecx
call fcn.00403050
add esp, 8
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
push eax
lea ecx, [ebp - 0x264]
push ecx
call fcn.00403050
add esp, 8
push 0x40e194
lea edx, [ebp - 0x148]
push edx
call fcn.00403050
add esp, 8
push 0x40e198
lea eax, [ebp - 0x128]
push eax
call fcn.00403050
add esp, 8
jmp 0x401e88
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
push edx
lea eax, [ebp - 0x108]
push eax
call fcn.00403050
add esp, 8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
push edx
lea eax, [ebp - 0x264]
push eax
call fcn.00403050
add esp, 8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
push edx
lea eax, [ebp - 0x148]
push eax
call fcn.00403050
add esp, 8
push 0x40e19c
lea ecx, [ebp - 0x128]
push ecx
call fcn.00403050
add esp, 8
jmp 0x401e88
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
push eax
lea ecx, [ebp - 0x108]
push ecx
call fcn.00403050
add esp, 8
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
push eax
lea ecx, [ebp - 0x264]
push ecx
call fcn.00403050
add esp, 8
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
push eax
lea ecx, [ebp - 0x148]
push ecx
call fcn.00403050
add esp, 8
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
push eax
lea ecx, [ebp - 0x128]
push ecx
call fcn.00403050
add esp, 8
cmp dword [ebp - 0x14c], 0
je 0x401ee1
lea edx, [ebp - 0x108]
push edx
lea eax, [ebp - 0x264]
push eax
push str.Donload_romfile__s_to__s___y_n_
call fcn.004027d4
add esp, 0xc
call fcn.00402cb8
mov byte [ebp - 0x160], al
push 0x40b390
call fcn.004027d4
add esp, 4
movsx ecx, byte [ebp - 0x160]
cmp ecx, 0x79
je 0x401ee1
movsx edx, byte [ebp - 0x160]
cmp edx, 0x59
je 0x401ee1
jmp 0x4024c0
lea eax, [ebp - 0x108]
push eax
push str._nConnecting__s
call fcn.004027d4
add esp, 8
lea ecx, [ebp - 0x108]
push ecx
call fcn.004026a1
add esp, 4
mov dword [ebp - 0x158], eax
mov edx, dword [ebp - 0x158]
push edx
push str.___lx__n
call fcn.004027d4
add esp, 8
mov dword [0x40b1d8], 2
call section..text
test eax, eax
je 0x401f46
mov dword [0x40b1e4], 3
mov eax, dword [0x40b1e4]
push eax
call fcn.0040316d
push 0xda90
lea ecx, [ebp - 0x108]
push ecx
push 0
call fcn.00401063
add esp, 0xc
mov dword [0x40e4a8], eax
cmp dword [0x40e4a8], 0
jge 0x401f80
mov dword [0x40b1e4], 3
mov edx, dword [0x40b1e4]
push edx
call fcn.0040316d
mov dword [0x40b1d8], 0
push 0x50
push 0
push 0x40e420
call fcn.00402860
add esp, 0xc
lea eax, [ebp - 0x148]
push eax
call fcn.00402c00
add esp, 4
test eax, eax
jne 0x402059
cmp dword [ebp - 0x274], 0
jne 0x402057
push 0x40e420
call fcn.00401b27
add esp, 4
push 0x40e420
call fcn.00402c00
add esp, 4
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 0
jle 0x40200c
mov ecx, dword [ebp - 0x268]
mov byte [ecx + 0x40e420], 0x20
mov edx, dword [ebp - 0x268]
add edx, 0x40e421
push edx
call fcn.00401a7c
add esp, 4
jmp 0x402057
push 0x40e420
call fcn.00401b27
add esp, 4
push 0x40e420
call fcn.00402c00
add esp, 4
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 0
jle 0x402057
mov eax, dword [ebp - 0x268]
mov byte [eax + 0x40e420], 0x20
mov ecx, dword [ebp - 0x268]
add ecx, 0x40e421
push ecx
call fcn.00401a7c
add esp, 4
jmp 0x402079
lea edx, [ebp - 0x128]
push edx
lea eax, [ebp - 0x148]
push eax
push str._s__s
push 0x40e420
call fcn.00402805
add esp, 0x10
cmp dword [ebp - 0x274], 0
jne 0x402093
push 0x40e420
call fcn.00402c00
add esp, 4
test eax, eax
jne 0x40209f
mov dword [ebp - 0x26c], 1
jmp 0x4020a9
mov dword [ebp - 0x26c], 0
cmp dword [ebp - 0x26c], 0
je 0x4020c1
mov dword [0x40e184], 1
jmp 0x4021da
push 0x40b3b4
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
push edx
call fcn.00403033
add esp, 8
mov dword [0x40e190], eax
cmp dword [0x40e190], 0
jne 0x4020f9
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
push ecx
push 0x40b3b8
call fcn.004027d4
add esp, 8
jmp 0x40213a
push 0
mov edx, dword [0x40e4a4]
sub edx, 0x10
push edx
mov eax, dword [0x40e190]
push eax
call fcn.00402f87
add esp, 0xc
mov ecx, dword [0x40e190]
push ecx
push 0x10
push 1
push 0x40f0e0
call fcn.00402e9f
add esp, 0x10
mov edx, dword [0x40e190]
push edx
call fcn.00402e49
add esp, 4
call fcn.0040146b
cmp dword [0x40e160], 1
jne 0x4021b1
push str.Connect_again
call fcn.004027d4
add esp, 4
mov dword [ebp - 0x278], 0
jmp 0x402170
mov eax, dword [ebp - 0x278]
add eax, 1
mov dword [ebp - 0x278], eax
cmp dword [ebp - 0x278], 8
jge 0x402193
push 0x40b3d8
call fcn.004027d4
add esp, 4
push 0x514
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x402161
mov dword [0x40e160], 0
mov ecx, dword [0x40e4a8]
push ecx
call fcn.0040114b
add esp, 4
jmp 0x401d4f
call fcn.004012fe
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jne 0x4021d0
mov edx, dword [0x40e4a8]
push edx
call fcn.0040114b
add esp, 4
jmp 0x4021da
mov dword [0x40e184], 1
cmp dword [0x40b1d8], 1
jne 0x402236
mov eax, dword [0x40e4a8]
push eax
call fcn.0040114b
add esp, 4
cmp dword [0x40e188], 0
je 0x402209
mov ecx, dword [0x40e188]
push ecx
call fcn.00402e49
add esp, 4
cmp dword [0x40e18c], 0
je 0x402221
mov edx, dword [0x40e18c]
push edx
call fcn.00402e49
add esp, 4
mov dword [0x40b1e4], 4
mov eax, dword [0x40b1e4]
push eax
call fcn.0040316d
cmp dword [ebp - 0x164], 0
je 0x4022e6
cmp dword [ebp - 8], 0
jne 0x402256
cmp dword [ebp - 0x15c], 0
jle 0x4022e4
push 0xc8
lea ecx, [ebp - 0x264]
push ecx
push 4
push str.Load
mov edx, dword [0x40e188]
push edx
call fcn.004024f2
add esp, 0x14
test eax, eax
jne 0x402285
cmp dword [ebp - 0x15c], 0x3c
jl 0x4022e4
mov eax, dword [ebp - 0x15c]
push eax
push 0x40b3e4
call fcn.004027d4
add esp, 8
cmp dword [ebp - 0x15c], 0
je 0x4022b1
mov ecx, dword [ebp - 0x26c]
push ecx
call fcn.004017b3
add esp, 4
mov edx, dword [0x40e4a8]
push edx
call fcn.0040114b
add esp, 4
mov eax, dword [0x40e188]
push eax
call fcn.00402e49
add esp, 4
mov dword [0x40b1e4], 0
mov ecx, dword [0x40b1e4]
push ecx
call fcn.0040316d
jmp 0x402340
cmp dword [ebp - 0x15c], 0
jle 0x402340
mov edx, dword [ebp - 0x15c]
push edx
push str._nTotal__d_files_downloaded_n
call fcn.004027d4
add esp, 8
cmp dword [ebp - 0x15c], 0
je 0x40231b
mov eax, dword [ebp - 0x26c]
push eax
call fcn.004017b3
add esp, 4
mov ecx, dword [0x40e4a8]
push ecx
call fcn.0040114b
add esp, 4
mov dword [0x40b1e4], 0
mov edx, dword [0x40b1e4]
push edx
call fcn.0040316d
mov dword [ebp - 8], 0
push 0x40b41c
lea eax, [ebp - 0x264]
push eax
call fcn.00403033
add esp, 8
mov dword [0x40e18c], eax
cmp dword [0x40e18c], 0
jne 0x4023ad
lea ecx, [ebp - 0x264]
push ecx
push str._s_not_found_n
call fcn.004027d4
add esp, 8
cmp dword [ebp - 0x164], 0
je 0x402392
mov dword [ebp - 8], 1
jmp 0x4021da
call fcn.00401a50
mov dword [0x40b1e4], 2
mov edx, dword [0x40b1e4]
push edx
call fcn.0040316d
mov eax, dword [ebp - 0x15c]
add eax, 1
mov dword [ebp - 0x15c], eax
cmp dword [0x40e184], 1
jne 0x4024a2
lea ecx, [ebp - 0x264]
push ecx
push str._nDownloading__s_n
call fcn.004027d4
add esp, 8
push 0
mov edx, dword [0x40e17c]
push edx
mov eax, dword [0x40e18c]
push eax
call fcn.00402f87
add esp, 0xc
cmp dword [0x40e8c8], 0x400
jge 0x40243f
mov ecx, dword [0x40e18c]
push ecx
mov edx, dword [0x40e8c8]
push edx
push 1
push 0x40e8e0
call fcn.00402e9f
add esp, 0x10
mov eax, dword [0x40e8c8]
push eax
call fcn.00401670
add esp, 4
mov ecx, dword [0x40e8c8]
sub ecx, 0x400
mov dword [0x40e8c8], ecx
jmp 0x402476
mov edx, dword [0x40e18c]
push edx
push 0x400
push 1
push 0x40e8e0
call fcn.00402e9f
add esp, 0x10
push 0x400
call fcn.00401670
add esp, 4
mov eax, dword [0x40e8c8]
sub eax, 0x400
mov dword [0x40e8c8], eax
mov ecx, dword [0x40e17c]
add ecx, 0x400
mov dword [0x40e17c], ecx
push 0x40b444
call fcn.004027d4
add esp, 4
cmp dword [0x40e8c8], 0
jg 0x4023dd
mov edx, dword [0x40e18c]
push edx
call fcn.00402e49
add esp, 4
mov dword [0x40e18c], 0
jmp 0x4021da
mov esp, ebp
pop ebp
ret