Function at 0x4150f0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x338
mov eax, dword [0x46d0a0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x318], eax
push edi
mov eax, 0x464e04
lea esi, [ebp - 0x1fc]
call fcn.0040fb30
mov esi, 8
cmp dword [eax + 0x14], esi
jb 0x41512b
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
cmp dword [ebp - 0x1e8], esi
jb 0x41514b
mov ecx, dword [ebp - 0x1fc]
push ecx
call fcn.00423933
add esp, 4
xor edx, edx
mov dword [ebp - 0x1e8], 7
mov dword [ebp - 0x1ec], 0
mov word [ebp - 0x1fc], dx
test ebx, ebx
je 0x415acf
mov eax, 0x464e20
lea esi, [ebp - 0x234]
call fcn.0040fb10
mov edi, 0x10
cmp dword [eax + 0x14], edi
jb 0x41518c
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x20c], eax
cmp dword [ebp - 0x220], edi
jb 0x4151b7
mov edx, dword [ebp - 0x234]
push edx
call fcn.00423933
add esp, 4
mov eax, 0x464e30
lea esi, [ebp - 0x2c0]
mov dword [ebp - 0x220], 0xf
mov dword [ebp - 0x224], 0
mov byte [ebp - 0x234], 0
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x4151e9
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x210], eax
cmp dword [ebp - 0x2ac], edi
jb 0x415214
mov edx, dword [ebp - 0x2c0]
push edx
call fcn.00423933
add esp, 4
fld qword [0x465200]
mov dword [ebp - 0x2ac], 0xf
mov dword [ebp - 0x2b0], 0
mov byte [ebp - 0x2c0], 0
fstp qword [ebp - 0x304]
fld qword [ebp - 0x304]
fsub qword [0x4651f8]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x304]
fcomp qword [0x4651f0]
fnstsw ax
test ah, 0x41
jne 0x415274
fld qword [ebp - 0x314]
fsub qword [0x4651e8]
fstp qword [ebp - 0x314]
jmp 0x4152a8
fld qword [ebp - 0x304]
call fcn.00426fd0
xor eax, 0x27b8
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x300]
imul eax, eax, 0x2287
mov dword [ebp - 0x300], eax
fild dword [ebp - 0x300]
fstp qword [ebp - 0x304]
mov eax, 0x464e48
lea esi, [ebp - 0x26c]
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x4152bf
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x214], eax
cmp dword [ebp - 0x258], edi
jb 0x4152ea
mov edx, dword [ebp - 0x26c]
push edx
call fcn.00423933
add esp, 4
mov eax, 0x464e58
lea esi, [ebp - 0x1a8]
mov dword [ebp - 0x258], 0xf
mov dword [ebp - 0x25c], 0
mov byte [ebp - 0x26c], 0
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x41531c
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x218], eax
cmp dword [ebp - 0x194], edi
jb 0x415347
mov edx, dword [ebp - 0x1a8]
push edx
call fcn.00423933
add esp, 4
fldz
mov dword [ebp - 0x194], 0xf
mov dword [ebp - 0x198], 0
mov byte [ebp - 0x1a8], 0
fstp qword [ebp - 0x314]
mov dword [ebp - 0x308], 0x72d9
mov eax, dword [ebp - 0x308]
mov ecx, dword [ebp - 0x308]
mov edx, dword [ebp - 0x308]
imul eax, ecx
lea eax, [eax + edx*2]
mov dword [ebp - 0x300], eax
fild dword [ebp - 0x300]
fsub qword [ebp - 0x314]
fstp qword [ebp - 0x314]
fld qword [ebp - 0x314]
fmul qword [0x464f30]
call fcn.004254f0
fstp qword [ebp - 0x314]
mov eax, 0x464e70
lea esi, [ebp - 0x2a4]
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x4153d2
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x21c], eax
cmp dword [ebp - 0x290], edi
jb 0x4153fd
mov edx, dword [ebp - 0x2a4]
push edx
call fcn.00423933
add esp, 4
mov dword [ebp - 0x290], 0xf
mov dword [ebp - 0x294], 0
mov byte [ebp - 0x2a4], 0
mov dword [ebp - 0x308], 0x3d22
mov eax, dword [ebp - 0x308]
imul eax, eax, 0x3f8a
mov dword [ebp - 0x300], eax
fild dword [ebp - 0x300]
fstp qword [ebp - 0x314]
sar dword [ebp - 0x308], 0x1f
fld qword [ebp - 0x314]
fmul qword [0x4651e0]
fadd qword [ebp - 0x314]
fstp qword [ebp - 0x314]
mov ecx, dword [ebp - 0x308]
mov dword [ebp - 0x300], ecx
fild dword [ebp - 0x300]
fmul qword [ebp - 0x314]
call fcn.00426fd0
mov dword [ebp - 0x308], eax
mov eax, 0x464e84
lea esi, [ebp - 0x1c4]
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x415499
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x318]
mov dword [edx + 0x220], eax
cmp dword [ebp - 0x1b0], edi
jb 0x4154c4
mov eax, dword [ebp - 0x1c4]
push eax
call fcn.00423933
add esp, 4
mov eax, 0x464e94
lea esi, [ebp - 0x1e0]
mov dword [ebp - 0x1b0], 0xf
mov dword [ebp - 0x1b4], 0
mov byte [ebp - 0x1c4], 0
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x4154f6
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x224], eax
cmp dword [ebp - 0x1cc], edi
jb 0x415521
mov edx, dword [ebp - 0x1e0]
push edx
call fcn.00423933
add esp, 4
fld qword [0x4651d8]
mov dword [ebp - 0x1cc], 0xf
mov dword [ebp - 0x1d0], 0
mov byte [ebp - 0x1e0], 0
fstp qword [ebp - 0x314]
fld qword [ebp - 0x314]
call fcn.00426fd0
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x300]
imul eax, eax, 0x1750
mov dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
test ecx, ecx
je 0x41558f
mov edx, dword [ebp - 0x300]
add edx, 0x1045
mov dword [ebp - 0x300], edx
fild dword [ebp - 0x300]
jmp 0x4155a6
mov eax, dword [ebp - 0x308]
sub eax, 0x79f9
mov dword [ebp - 0x300], eax
fild dword [ebp - 0x300]
fstp qword [ebp - 0x314]
mov ecx, dword [ebp - 0x308]
fld qword [ebp - 0x314]
push ecx
sub esp, 8
fstp qword [esp]
push str._lf__i
call fcn.00423a88
add esp, 0x10
mov eax, 0x464ea8
lea esi, [ebp - 0x218]
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x4155e3
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x318]
mov dword [edx + 0x228], eax
cmp dword [ebp - 0x204], edi
jb 0x41560e
mov eax, dword [ebp - 0x218]
push eax
call fcn.00423933
add esp, 4
fld qword [0x4651d0]
mov dword [ebp - 0x204], 0xf
mov dword [ebp - 0x208], 0
mov byte [ebp - 0x218], 0
fstp qword [ebp - 0x314]
fld qword [ebp - 0x314]
call fcn.00426fd0
mov dword [ebp - 0x300], eax
mov ecx, dword [ebp - 0x300]
imul ecx, ecx, 0x7f8c
mov dword [ebp - 0x308], ecx
mov edx, dword [ebp - 0x308]
test edx, edx
je 0x41567b
mov eax, dword [ebp - 0x300]
add eax, 0x23cf
mov dword [ebp - 0x300], eax
fild dword [ebp - 0x300]
jmp 0x415693
mov ecx, dword [ebp - 0x308]
sub ecx, 0x7494
mov dword [ebp - 0x300], ecx
fild dword [ebp - 0x300]
fstp qword [ebp - 0x314]
mov edx, dword [ebp - 0x308]
fld qword [ebp - 0x314]
push edx
sub esp, 8
fstp qword [esp]
push str._lf__i
call fcn.00423a88
add esp, 0x10
mov eax, 0x464ebc
lea esi, [ebp - 0x250]
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x4156d0
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x22c], eax
cmp dword [ebp - 0x23c], edi
jb 0x4156fb
mov edx, dword [ebp - 0x250]
push edx
call fcn.00423933
add esp, 4
mov eax, 0x464ed0
lea esi, [ebp - 0x288]
mov dword [ebp - 0x23c], 0xf
mov dword [ebp - 0x240], 0
mov byte [ebp - 0x250], 0
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x41572d
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x318]
mov dword [ecx + 0x230], eax
cmp dword [ebp - 0x274], edi
jb 0x415758
mov edx, dword [ebp - 0x288]
push edx
call fcn.00423933
add esp, 4
fld qword [0x4651c8]
mov dword [ebp - 0x274], 0xf
mov dword [ebp - 0x278], 0
mov byte [ebp - 0x288], 0
fstp qword [ebp - 0x314]
fld qword [ebp - 0x314]
call fcn.00426fd0
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x300]
imul eax, eax, 0x5972
mov dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
test ecx, ecx
je 0x4157c6
mov edx, dword [ebp - 0x300]
add edx, 0x7695
mov dword [ebp - 0x300], edx
fild dword [ebp - 0x300]
jmp 0x4157dd
mov eax, dword [ebp - 0x308]
sub eax, 0x4033
mov dword [ebp - 0x300], eax
fild dword [ebp - 0x300]
fstp qword [ebp - 0x314]
mov ecx, dword [ebp - 0x308]
fld qword [ebp - 0x314]
push ecx
sub esp, 8
fstp qword [esp]
push str._lf__i
call fcn.00423a88
add esp, 0x10
mov eax, 0x464ee4
lea esi, [ebp - 0x2f8]
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x41581a
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x318]
mov dword [edx + 0x234], eax
cmp dword [ebp - 0x2e4], edi
jb 0x415845
mov eax, dword [ebp - 0x2f8]
push eax
call fcn.00423933
add esp, 4
fld qword [0x4651c0]
mov dword [ebp - 0x2e4], 0xf
mov dword [ebp - 0x2e8], 0
mov byte [ebp - 0x2f8], 0
call fcn.00423b90
fstp qword [ebp - 0x324]
push 0x7f
lea ecx, [ebp - 0x8b]
push 0
push ecx
mov byte [ebp - 0x8c], 0
call fcn.00425e90
fld qword [ebp - 0x324]
add esp, 4
fstp qword [esp]
push str.a__lf_
lea edx, [ebp - 0x8c]
push 0x80
push edx
call fcn.004253d3
add esp, 0x14
lea eax, [ebp - 0x324]
push eax
lea ecx, [ebp - 0x8c]
push 0x4607d0
push ecx
call fcn.00425481
add esp, 0xc
mov eax, 0x464ef4
lea esi, [ebp - 0x2dc]
call fcn.0040fb10
cmp dword [eax + 0x14], edi
jb 0x4158df
mov eax, dword [eax]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x318]
mov dword [edx + 0x238], eax
cmp dword [ebp - 0x2c8], edi
jb 0x41590a
mov eax, dword [ebp - 0x2dc]
push eax
call fcn.00423933
add esp, 4
mov dword [ebp - 0x2c8], 0xf
mov dword [ebp - 0x2cc], 0
mov byte [ebp - 0x2dc], 0
mov dword [ebp - 0x308], 0x737
mov ecx, dword [ebp - 0x308]
imul ecx, ecx, 0x4b81
mov dword [ebp - 0x300], ecx
fild dword [ebp - 0x300]
fstp qword [ebp - 0x314]
sar dword [ebp - 0x308], 0x1f
fld qword [ebp - 0x314]
fmul qword [0x4651b8]
fadd qword [ebp - 0x314]
fstp qword [ebp - 0x314]
mov edx, dword [ebp - 0x308]
mov dword [ebp - 0x300], edx
fild dword [ebp - 0x300]
fmul qword [ebp - 0x314]
call fcn.00426fd0
fld qword [0x4651b0]
mov dword [ebp - 0x308], eax
call fcn.00423b90
fstp qword [ebp - 0x32c]
push 0x7f
lea eax, [ebp - 0x18b]
push 0
push eax
mov byte [ebp - 0x18c], 0
call fcn.00425e90
fld qword [ebp - 0x32c]
add esp, 4
fstp qword [esp]
push str.a__lf_
lea ecx, [ebp - 0x18c]
push 0x80
push ecx
call fcn.004253d3
add esp, 0x14
lea edx, [ebp - 0x32c]
push edx
lea eax, [ebp - 0x18c]
push 0x4607d0
push eax
call fcn.00425481
fld qword [0x4651a8]
mov dword [ebp - 0x300], 0x2dd8
fstp qword [ebp - 0x30c]
mov ecx, dword [ebp - 0x300]
imul ecx, ecx, 0x64de
mov dword [ebp - 0x300], ecx
add esp, 0xc
fild dword [ebp - 0x300]
fld qword [ebp - 0x30c]
fadd st(0), st(0)
fsubp st(1)
fstp qword [ebp - 0x30c]
fld qword [ebp - 0x30c]
fcomp qword [0x464f10]
fnstsw ax
test ah, 5
jp 0x415a56
fld qword [ebp - 0x30c]
fchs
fstp qword [ebp - 0x30c]
fld qword [ebp - 0x30c]
call fcn.00426fd0
fld qword [0x4651a0]
mov dword [ebp - 0x300], eax
call fcn.00423b90
fstp qword [ebp - 0x334]
push 0x7f
lea edx, [ebp - 0x10b]
push 0
push edx
mov byte [ebp - 0x10c], 0
call fcn.00425e90
fld qword [ebp - 0x334]
add esp, 4
fstp qword [esp]
push str.a__lf_
lea eax, [ebp - 0x10c]
push 0x80
push eax
call fcn.004253d3
add esp, 0x14
lea ecx, [ebp - 0x334]
push ecx
lea edx, [ebp - 0x10c]
push 0x4607d0
push edx
call fcn.00425481
add esp, 0xc
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042393e
mov esp, ebp
pop ebp
ret 4