Function at 0x10002b50
Capabilities:
Accept command line arguments
Create thread
Initialize winsock library
Read file via mapping
Resolve dns
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1000eb0a
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1ec4
call fcn.1000dfa0
mov eax, dword [0x10014018]
xor eax, esp
mov dword [esp + 0x1ec0], eax
push ebx
push esi
push edi
mov eax, dword [0x10014018]
xor eax, esp
push eax
lea eax, [esp + 0x1ed8]
mov dword fs:[0], eax
push 0x18e
xor edi, edi
lea ecx, [esp + 0x132]
xor eax, eax
push edi
push ecx
mov word [esp + 0x138], ax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea edx, [esp + 0x12c]
push edx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
cmp eax, edi
je 0x10002c1a
push eax
lea esi, [esp + 0xe8]
call fcn.10008500
mov esi, 8
add esp, 4
cmp dword [eax + 0x14], esi
jb 0x10002bea
mov eax, dword [eax]
push 0x10
push 0x1000f34c
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [esp + 0xf8], esi
jb 0x10002c13
mov eax, dword [esp + 0xe4]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
push edi
call dword [sym.imp.MSVCR100.dll_exit]
push 0xffe
lea edx, [esp + 0xed2]
xor ecx, ecx
push edi
push edx
mov word [esp + 0xed8], cx
call sub.MSVCR100.dll_memset
add esp, 0xc
lea eax, [esp + 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ecx, word [esp + 0x10a]
movzx edx, word [esp + 0x108]
movzx eax, word [esp + 0x102]
push ecx
movzx ecx, word [esp + 0x10a]
push edx
push eax
push ecx
lea edx, [esp + 0xedc]
push str._n__.2i._.2i.__.2i:_.2i___nStarting_loader..._n
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
call fcn.10001320
push 0x208
lea ecx, [esp + 0x4da]
xor eax, eax
push edi
push ecx
mov word [esp + 0x4e0], ax
call sub.MSVCR100.dll_memset
add esp, 0x24
push 0x104
lea edx, [esp + 0x4c0]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
mov word [esp + 0xac], ax
lea eax, [esp + 0x4bc]
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], edi
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x10002ce0
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x4c0]
lea ecx, [esp + 0xb0]
call fcn.10004890
mov dword [esp + 0x1ee0], edi
mov ebx, 2
lea edi, [esp + 0xac]
call fcn.100044b0
inc eax
push eax
xor ecx, ecx
lea eax, [esp + 0xcc]
mov edx, edi
call fcn.10003ec0
mov edi, eax
lea esi, [esp + 0xac]
mov byte [esp + 0x1ee0], 1
call fcn.10004390
mov byte [esp + 0x1ee0], 0
cmp dword [esp + 0xdc], 8
jb 0x10002d66
mov ecx, dword [esp + 0xc8]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ebx, 9
lea eax, [esp + 0xac]
call fcn.100047d0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
xor edx, edx
mov ebx, 7
xor edi, edi
push 1
mov eax, 0x1000f65c
lea ecx, [esp + 0x78]
mov dword [esp + 0x38], esi
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], edi
mov word [esp + 0x78], dx
call fcn.10004890
mov byte [esp + 0x1ee0], 2
xor eax, eax
mov word [esp + 0x58], ax
mov eax, esi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], edi
lea edx, [eax + 2]
jmp 0x10002dd0
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x10002dd0
sub eax, edx
sar eax, 1
push eax
mov eax, esi
lea ecx, [esp + 0x5c]
call fcn.10004890
lea eax, [esp + 0x74]
lea ecx, [esp + 0x58]
lea esi, [esp + 0x38]
mov byte [esp + 0x1ee0], 3
call fcn.10005410
mov esi, 8
cmp dword [esp + 0x6c], esi
jb 0x10002e1d
mov ecx, dword [esp + 0x58]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edx, edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], edi
mov word [esp + 0x58], dx
mov byte [esp + 0x1ee0], 6
cmp dword [esp + 0x88], esi
jb 0x10002e4b
mov eax, dword [esp + 0x74]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edi, edi
push 0x1fe
lea eax, [esp + 0x2c2]
xor ecx, ecx
xor edx, edx
push edi
push eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], edi
mov word [esp + 0x80], cx
mov word [esp + 0x2c8], dx
call sub.MSVCR100.dll_memset
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add esp, 0xc
add ecx, edx
je 0x10002fae
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov edi, edi
mov ecx, 8
cmp dword [esi + ebx + 0x14], ecx
lea eax, [esi + ebx]
jb 0x10002ec6
mov edx, dword [eax]
mov dword [esp + 0x14], edx
jmp 0x10002eca
mov dword [esp + 0x14], eax
cmp dword [eax + 0x14], ecx
jb 0x10002ed3
mov ecx, dword [eax]
jmp 0x10002ed5
mov ecx, eax
cmp dword [eax + 0x14], 8
mov edx, dword [eax + 0x10]
lea ecx, [ecx + edx*2]
jb 0x10002ee3
mov eax, dword [eax]
cmp eax, ecx
je 0x10002f0c
mov edx, dword [sym.imp.MSVCR100.dll_tolower]
push edx
mov edx, dword [esp + 0x18]
push edx
lea edx, [esp + 0x20]
push edx
mov ebx, ecx
call fcn.10005850
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x10002f14
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
cmp dword [esi + ebx + 0x14], 8
lea eax, [esi + ebx]
jb 0x10002f20
mov eax, dword [eax]
push 0x1000f660
push eax
call dword [sym.imp.MSVCR100.dll_wcsstr]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
add esp, 8
sub ecx, esi
test eax, eax
mov eax, 0x92492493
jne 0x10002f62
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
inc edi
add ebx, 0x1c
add ecx, edx
mov dword [esp + 0x30], ebx
cmp edi, ecx
jb 0x10002eb0
jmp 0x10002fae
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [edi + 1]
cmp ecx, eax
jae 0x10002fae
lea eax, [edi + 1]
lea edx, [eax*8]
sub edx, eax
cmp dword [esi + edx*4 + 0x14], 8
lea eax, [esi + edx*4]
jb 0x10002f8f
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCR100.dll__wtoi]
add esp, 4
push eax
push str.FM__i
lea edx, [esp + 0x2c4]
call fcn.10005430
add esp, 8
lea eax, [esp + 0x2bc]
lea edx, [eax + 2]
jmp 0x10002fc0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10002fc0
sub eax, edx
sar eax, 1
jne 0x10003029
xor eax, eax
push 0x7fe
push eax
lea ecx, [esp + 0x6d6]
push ecx
mov word [esp + 0x6d8], ax
call sub.MSVCR100.dll_memset
mov edx, dword [esp + 0x40]
add esp, 0xc
push edx
push str.Cannot_determine_data_location__n_n_s
lea edx, [esp + 0x6d4]
call fcn.10005450
add esp, 8
push 0x10
push 0x1000f34c
lea eax, [esp + 0x6d4]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call dword [sym.imp.MSVCR100.dll_exit]
lea ecx, [esp + 0x2bc]
push ecx
xor edi, edi
push edi
push 4
call dword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov ebx, eax
cmp ebx, edi
je 0x10003098
push 0x118
push edi
push edi
push 4
push ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, edi
je 0x1000308a
cmp dword [eax], 0x689
jne 0x1000307a
mov ecx, 0x46
mov esi, eax
mov edi, 0x100167a0
rep movsd dword es:[edi], dword [esi]
mov dl, byte [0x10016830]
mov byte [0x100152a8], dl
xor edi, edi
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100030d3
call fcn.10001320
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100030d3
call fcn.10001320
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea esi, [esp + 0xcc]
call fcn.10008500
add esp, 4
call fcn.10001320
cmp dword [esp + 0xdc], 8
jb 0x100030d3
mov eax, dword [esp + 0xc8]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [0x1001682c]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push ecx
push str.SEC:_0x_.8X_n
push 0x10015680
call ebx
add esp, 0xc
push str.windir
call dword [sym.imp.MSVCR100.dll__wgetenv]
add esp, 4
mov esi, eax
push 0x3a
push esi
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
cmp eax, edi
je 0x10003115
xor edx, edx
mov word [eax + 2], dx
push 0x7fe
lea ecx, [esp + 0x6d2]
xor eax, eax
push edi
push ecx
mov word [esp + 0x6d8], ax
call sub.MSVCR100.dll_memset
add esp, 0xc
push esi
lea edx, [esp + 0x6d0]
push str._sLoaderLog_pSRO.txt
push edx
call ebx
add esp, 0xc
cmp dword [0x100167a0], 0x689
je 0x1000316e
push 0x30
push 0x1000f34c
push str.Incorrect_version_of_psilk.dll_detected
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push edi
call dword [sym.imp.MSVCR100.dll_exit]
mov ebx, 0xf
lea esi, [ebx - 6]
mov eax, str.127.0.0.1
lea ecx, [esp + 0x90]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa0], edi
mov byte [esp + 0x90], 0
call fcn.10004630
mov byte [esp + 0x1ee0], 7
lea esi, [ebx - 0xd]
mov eax, 0x1000f758
lea ecx, [esp + 0xe4]
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xf4], edi
mov byte [esp + 0xe4], 0
call fcn.10004630
lea eax, [esp + 0xe4]
lea edx, [esp + 0x90]
lea esi, [esp + 0x1c]
mov byte [esp + 0x1ee0], 8
call fcn.10005470
mov byte [esp + 0x1ee0], 0xa
cmp dword [esp + 0xf8], 0x10
jb 0x10003211
mov eax, dword [esp + 0xe4]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xf4], edi
mov byte [esp + 0xe4], 0
cmp ecx, 4
je 0x100032f0
push 0x10
push str.Fatal_Error
push str.Please_enter_an_IP_in_the_format_0.0.0.0
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x10003281
mov edi, dword [esp + 0x20]
call fcn.10004a70
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edi, edi
cmp dword [esp + 0xa4], 0x10
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
jb 0x100032a8
mov eax, dword [esp + 0x90]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esp + 0x38]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa0], edi
mov byte [esp + 0x90], 0
cmp eax, edi
je 0x100032df
mov edi, dword [esp + 0x3c]
call fcn.10004c10
mov ecx, dword [esp + 0x38]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edi, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
jmp 0x10003c33
xor ebx, ebx
cmp dword [0x100152ac], edi
jbe 0x10003381
mov edi, 0x10016687
jmp 0x10003309
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x14], 0x10
jb 0x10003313
mov eax, dword [esi]
jmp 0x10003315
mov eax, esi
mov esi, dword [sym.imp.MSVCR100.dll_atoi]
push eax
call esi
mov byte [edi - 1], al
mov eax, dword [esp + 0x20]
add eax, 0x1c
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x10003333
mov eax, dword [eax]
push eax
call esi
mov byte [edi], al
mov eax, dword [esp + 0x20]
add eax, 0x38
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x1000334a
mov eax, dword [eax]
push eax
call esi
mov byte [edi + 1], al
mov eax, dword [esp + 0x20]
add eax, 0x54
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x10003362
mov eax, dword [eax]
push eax
call esi
mov byte [edi + 2], al
mov ax, word [0x100167a8]
mov word [edi + 3], ax
inc ebx
add esp, 4
add edi, 0xc
cmp ebx, dword [0x100152ac]
jb 0x10003305
push 0xb0
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0x18], eax
xor edi, edi
mov byte [esp + 0x1ee0], 0xb
cmp eax, edi
je 0x100033a9
push eax
call fcn.10008dc0
jmp 0x100033ab
xor eax, eax
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0xac]
push ecx
mov ecx, 0x10016831
lea edx, [esp + 0x30]
mov byte [esp + 0x1ee4], 0xc
mov dword [esp + 0x58], 0x3da3
call fcn.10009130
test al, al
je 0x10003c88
sub esp, 0x1c
mov ecx, esp
mov ebx, 0xf
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x10], edi
lea esi, [ebx + 1]
mov eax, str.DIVISIONINFO.TXT
mov dword [esp + 0x34], esp
mov byte [ecx], 0
call fcn.10004630
lea edx, [esp + 0x48]
push edx
lea ecx, [esp + 0x68]
call fcn.10009fb0
mov byte [esp + 0x1ee0], 0xd
cmp dword [esp + 0x4c], edi
je 0x100034ec
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
add eax, 8
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.10009c80
mov eax, dword [esp + 0x78]
cmp eax, edi
je 0x100034ec
push eax
mov eax, dword [esp + 0x78]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.1000b1a0
add esp, 0xc
mov byte [esp + 0x1ee0], 0xe
mov dl, byte [eax]
add eax, 4
mov ecx, 0x1001678c
mov byte [0x10016788], dl
call fcn.10003ef0
mov byte [esp + 0x1ee0], 0xd
mov eax, dword [esp + 0x78]
cmp eax, edi
je 0x100034a6
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x7c]
push ecx
push edx
call fcn.10005bf0
mov eax, dword [esp + 0x80]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 0xc
movzx ecx, byte [0x10016788]
mov dword [0x10015678], ecx
mov ecx, dword [0x10016790]
sub ecx, dword [0x1001678c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x100034ec
push 0x10
push str.Fatal_Error
push str.The_DivisionInfo_could_not_be_parsed.
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push edi
call dword [sym.imp.MSVCR100.dll_exit]
sub esp, 0x1c
mov ecx, esp
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x10], edi
mov esi, 0xc
mov eax, str.GATEPORT.TXT
mov dword [esp + 0x34], esp
mov byte [ecx], 0
call fcn.10004630
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x94]
call fcn.10009fb0
mov esi, eax
lea edx, [esp + 0x48]
mov byte [esp + 0x1ee0], 0xf
cmp edx, esi
je 0x10003552
mov ebx, edx
call fcn.10004c50
mov eax, dword [esi + 4]
test eax, eax
je 0x10003552
mov ecx, dword [esi]
mov edx, dword [ecx]
mov edi, dword [esp + 0x48]
mov edi, dword [edi]
push ecx
push edx
push edi
mov edx, ebx
call fcn.10005130
lea ebx, [esp + 0x74]
mov byte [esp + 0x1ee0], 0xd
call fcn.10004c50
mov eax, dword [esp + 0x74]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0x4c], 0
je 0x10003644
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
add eax, 8
push eax
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x34]
push eax
call fcn.10009c80
mov edi, dword [esp + 0x78]
test edi, edi
je 0x10003644
mov eax, dword [esp + 0x74]
mov ecx, eax
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], 0
mov byte [esp + 0x58], 0
lea esi, [ecx + 1]
nop
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x100035c0
sub ecx, esi
mov esi, ecx
lea ecx, [esp + 0x58]
call fcn.10004630
mov ebx, 0x10
mov byte [esp + 0x1ee0], bl
mov eax, dword [esp + 0x68]
cmp edi, eax
ja 0x100035f8
or eax, 0xffffffff
mov ecx, edi
lea esi, [esp + 0x58]
call fcn.10004700
jmp 0x1000360c
mov ebx, edi
push 0
sub ebx, eax
lea edi, [esp + 0x5c]
call fcn.10004260
mov ebx, 0x10
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x1000361a
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.MSVCR100.dll_atoi]
add esp, 4
mov byte [esp + 0x1ee0], 0xd
mov dword [esp + 0x54], eax
cmp dword [esp + 0x6c], ebx
jb 0x10003644
mov ecx, dword [esp + 0x58]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea ebx, [esp + 0x2c]
call fcn.10009370
lea ebx, [esp + 0x48]
mov byte [esp + 0x1ee0], 0xc
call fcn.10004c50
mov edx, dword [esp + 0x48]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
mov eax, dword [0x10015678]
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x100036f0
add eax, 0xfffffffe
cmp eax, 0x26
ja case.0x10003686.3
movzx eax, byte [eax + 0x10003cc4]
jmp dword [eax*4 + 0x10003ca4]
mov dword [0x10015678], ebx
jmp 0x100036f0
mov dword [0x10015678], 1
jmp 0x100036f0
mov dword [0x10015678], 2
jmp 0x100036f0
mov dword [0x10015678], 3
jmp 0x100036f0
mov dword [0x10015678], 4
jmp 0x100036f0
mov dword [0x10015678], 5
jmp 0x100036f0
mov dword [0x10015678], 9
jmp 0x100036f0
push 0x10
push 0x1000f34c
push str.An_unsupported_SRO_version_was_detected.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [0x10016790]
mov esi, dword [0x1001678c]
sub ecx, esi
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [0x100152ac], ebx
mov dword [esp + 0x18], ebx
je 0x10003b43
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x10003734
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + esi + 0x20]
sub ecx, dword [eax + esi + 0x1c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], ebx
je 0x10003b14
mov dword [esp + 0x30], ebx
lea ecx, [ecx]
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + esi + 0x1c]
add edi, dword [esp + 0x30]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
mov esi, dword [edi + 0x10]
cmp esi, 0xffffffff
jbe 0x10003787
or esi, 0xffffffff
lea edx, [esp + 0x58]
cmp edx, edi
jne 0x100037e4
or edi, 0xffffffff
cmp esi, ebx
ja 0x10003c72
mov eax, esi
neg eax
cmp eax, 0xffffffff
jae 0x100037ad
mov edi, eax
cmp edi, ebx
jbe 0x10003850
sub eax, edi
push eax
lea eax, [edi + esi]
lea ecx, [esp + eax + 0x5c]
push ecx
lea edx, [esp + esi + 0x60]
push edx
call dword [sym.imp.MSVCR100.dll_memmove]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x64]
sub eax, edi
add esp, 0xc
cmp dword [esp + 0x6c], 0x10
mov dword [esp + 0x68], eax
jae 0x100037df
lea ecx, [esp + 0x58]
mov byte [eax + ecx], bl
jmp 0x10003850
cmp esi, 0xfffffffe
ja 0x10003c7d
cmp esi, 0xf
jbe 0x10003800
push ebx
push esi
lea eax, [esp + 0x60]
push eax
call fcn.10004cd0
jmp 0x1000380c
cmp esi, ebx
jne 0x1000380e
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
cmp esi, ebx
seta al
cmp al, bl
je 0x10003850
mov eax, 0x10
cmp dword [edi + 0x14], eax
jb 0x10003821
mov edi, dword [edi]
cmp dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
jae 0x1000382f
lea eax, [esp + 0x58]
push esi
push edi
push eax
call sub.MSVCR100.dll_memcpy
mov eax, dword [esp + 0x64]
add esp, 0xc
cmp dword [esp + 0x6c], 0x10
mov dword [esp + 0x68], esi
jae 0x1000384d
lea eax, [esp + 0x58]
mov byte [eax + esi], bl
mov byte [esp + 0x1ee0], 0x11
cmp dword [esp + 0x6c], 0x10
mov eax, dword [esp + 0x58]
jae 0x10003867
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
cmp eax, ebx
je 0x10003abc
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov edi, 0xf
mov ecx, eax
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x100038a3
sub ecx, esi
mov esi, ecx
lea ecx, [esp + 0xc8]
call fcn.10004630
mov byte [esp + 0x1ee0], 0x12
mov esi, 1
mov eax, 0x1000f8bc
lea ecx, [esp + 0x110]
mov dword [esp + 0x124], edi
mov dword [esp + 0x120], ebx
mov byte [esp + 0x110], bl
call fcn.10004630
lea eax, [esp + 0x110]
lea edx, [esp + 0xc8]
lea esi, [esp + 0x74]
mov byte [esp + 0x1ee0], 0x13
call fcn.10005470
mov esi, eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x1ee0], 0x14
cmp eax, esi
je 0x1000397a
cmp dword [esp + 0x1c], ebx
je 0x10003947
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
call fcn.10004a70
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
push esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Swap_all_struct_std::_Container_base0__]
mov edx, dword [esi]
mov dword [esp + 0x1c], edx
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], ecx
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov byte [esp + 0x1ee0], 0x13
cmp dword [esp + 0x74], ebx
je 0x100039d3
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
cmp esi, edi
je 0x100039c9
mov edi, edi
cmp dword [esi + 0x14], 0x10
jb 0x100039b2
mov eax, dword [esi]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
mov byte [esi], bl
add esi, 0x1c
cmp esi, edi
jne 0x100039a0
mov esi, dword [esp + 0x74]
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov esi, 0x10
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
cmp dword [esp + 0x124], esi
jb 0x100039fe
mov edx, dword [esp + 0x110]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x14], esi
jb 0x10003a09
mov eax, dword [eax]
mov edi, dword [sym.imp.MSVCR100.dll_atoi]
push eax
call edi
mov ecx, dword [0x100152ac]
lea ecx, [ecx + ecx*2]
mov byte [ecx*4 + 0x10016680], al
mov eax, dword [esp + 0x20]
add eax, 0x1c
add esp, 4
cmp dword [eax + 0x14], esi
jb 0x10003a33
mov eax, dword [eax]
push eax
call edi
mov ecx, dword [0x100152ac]
lea edx, [ecx + ecx*2]
mov byte [edx*4 + 0x10016681], al
mov eax, dword [esp + 0x20]
add eax, 0x38
add esp, 4
cmp dword [eax + 0x14], esi
jb 0x10003a57
mov eax, dword [eax]
push eax
call edi
mov esi, dword [0x100152ac]
lea ecx, [esi + esi*2]
mov byte [ecx*4 + 0x10016682], al
mov eax, dword [esp + 0x20]
add eax, 0x54
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x10003a7c
mov eax, dword [eax]
lea esi, [esi + esi*2]
add esi, esi
push eax
add esi, esi
call edi
mov dx, word [esp + 0x58]
inc dword [0x100152ac]
add esp, 4
cmp dword [esp + 0xdc], 0x10
mov byte [esi + 0x10016683], al
mov word [esi + 0x10016684], dx
jb 0x10003abc
mov eax, dword [esp + 0xc8]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0x1ee0], 0xc
cmp dword [esp + 0x6c], 0x10
jb 0x10003ad9
mov ecx, dword [esp + 0x58]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, dword [0x1001678c]
mov ecx, dword [eax + esi + 0x20]
sub ecx, dword [eax + esi + 0x1c]
mov edi, dword [esp + 0x34]
add dword [esp + 0x30], 0x1c
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
mov dword [esp + 0x34], edi
cmp edi, eax
jb 0x10003760
mov ecx, dword [0x10016790]
mov edi, dword [esp + 0x18]
add dword [esp + 0x14], 0x2c
sub ecx, esi
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
inc edi
add ecx, edx
mov dword [esp + 0x18], edi
cmp edi, ecx
jb 0x10003730
lea ebx, [esp + 0x2c]
mov byte [esp + 0x1ee0], 0xa
call fcn.10009370
mov esi, dword [esp + 0x2c]
xor ebx, ebx
cmp esi, ebx
je 0x10003b6e
push esi
call fcn.10009050
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0x1ee0], 7
cmp dword [esp + 0x1c], ebx
je 0x10003ba1
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
call fcn.10004a70
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0xa4], 0x10
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
jb 0x10003bc8
mov eax, dword [esp + 0x90]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0x1ee0], bl
mov dword [esp + 0xa4], 0xf
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
cmp dword [esp + 0x38], ebx
je 0x10003c13
lea ecx, [esp + 0x38]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
call fcn.10004c10
mov ecx, dword [esp + 0x38]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
push ebx
push ebx
push ebx
push 0x10003d60
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
je 0x10003c2e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.100018b0
cmp dword [esp + 0xc0], 8
jb 0x10003c4e
mov edx, dword [esp + 0xac]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [esp + 0x1ed8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1ec0]
xor ecx, esp
call fcn.1000d500
mov esp, ebp
pop ebp
ret
push str.invalid_string_position
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xout_of_range_char_const__]
push str.string_too_long
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
push 0x10
push 0x1000f34c
push str.Cannot_open_Media.pk2
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push edi
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, edi
lea esi, [esi]
add byte [eax], dl
xchg ebp, eax
add byte ss:[eax], dl
mov eax, dword [0xad100036]
add byte ss:[eax], dl
mov ecx, 0xc5100036
add byte ss:[eax], dl
sal dword [esi], 1
add byte [eax], dl
fnsave dword [esi]
add byte [eax], dl
add byte [edi], al
add dword [edi], eax
pop es
pop es
pop es
pop es
pop es
pop es
add al, byte [edi]
pop es
add eax, dword [edi]
pop es
add al, 7
pop es
pop es
add eax, 117901061
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
push es
int3