Function at 0x42b042
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45794b
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push esi
push edi
mov eax, dword [0x47d084]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov edi, ecx
lea esi, [ebx + 0xc]
cmp dword [esi], edi
je 0x42b07b
call fcn.00403fe4
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [esp + 0x1c], edi
cmp eax, edi
je 0x42b097
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push 0x47780c
push eax
call dword [ecx]
mov dword [esp + 0x38], edi
push 0x48
pop esi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
imul eax, ecx
push 0x4f
pop ecx
sub ecx, eax
add ecx, dword [esp + 0xc]
push 0x57
add ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
cdq
pop ecx
idiv ecx
push 0x42
mov ecx, eax
mov eax, dword [esp + 0x10]
imul ecx, eax
mov eax, dword [esp + 0x10]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx - 0x14]
add eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov dword [esp + 0x10], eax
add dword [esp + 0x10], 0xffffffa1
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x10]
pop ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, eax
mov eax, dword [esp + 0xc]
sub ecx, eax
add ecx, dword [esp + 0xc]
add ecx, dword [esp + 0xc]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
imul eax, ecx
add eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
imul eax, eax, 0x41
imul ecx, edx
mov edx, dword [esp + 0xc]
imul ecx, edx
imul ecx, ecx, 0x47
add eax, ecx
mov ecx, dword [esp + 0xc]
imul ecx, ecx, 0x2f
sub eax, ecx
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx - 0x18]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x1c], edi
je 0x42b49f
mov dword [esp + 0x18], edi
mov byte [esp + 0x38], 1
fld qword [0x4778b8]
fstp qword [esp + 0xc]
lea edx, [esp + 0x18]
fld qword [esp + 0xc]
push edx
fmul qword [0x4778b0]
fadd qword [esp + 0x10]
fadd qword [0x4778a8]
fld qword [esp + 0x10]
fmul qword [esp + 0x10]
fsubp st(1)
fsub qword [esp + 0x10]
fsub qword [esp + 0x10]
fadd qword [0x4778a0]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fld qword [0x477898]
fmul st(1), st(0)
fxch st(1)
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fsub qword [0x477890]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fsub qword [esp + 0x10]
fsub qword [esp + 0x10]
fadd qword [0x477888]
fadd qword [esp + 0x10]
fsubrp st(1)
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [0x477880]
fmul qword [esp + 0x10]
fadd qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fadd qword [esp + 0x10]
fsub qword [0x477878]
fadd qword [esp + 0x10]
fadd qword [0x477870]
fld qword [esp + 0x10]
mov eax, dword [esp + 0x20]
fmul qword [0x477868]
mov ecx, dword [eax]
push eax
faddp st(1)
fstp qword [esp + 0x14]
call dword [ecx + 0x10]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp eax, edi
je 0x42b290
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push 0x47784c
push eax
call dword [ecx]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x38], 2
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x42b46a
cmp ecx, edi
je 0x42b46a
lea edx, [esp + 0x28]
push edx
push 0x477140
mov dword [esp + 0x30], edi
mov ecx, dword [eax]
push eax
call dword [ecx]
mov byte [esp + 0x38], 3
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], edi
cmp eax, edi
je 0x42b2dc
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push 0x477130
push eax
call dword [ecx]
mov byte [esp + 0x38], 4
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
imul eax, ecx
push 0x4f
pop ecx
sub ecx, eax
add ecx, dword [esp + 0xc]
push 0x57
add ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
cdq
pop ecx
idiv ecx
push 0x42
mov ecx, eax
mov eax, dword [esp + 0x10]
imul ecx, eax
mov eax, dword [esp + 0x10]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx - 0x14]
add eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov dword [esp + 0x10], eax
add dword [esp + 0x10], 0xffffffa1
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x10]
pop ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, eax
mov eax, dword [esp + 0xc]
sub ecx, eax
add ecx, dword [esp + 0xc]
add ecx, dword [esp + 0xc]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
imul eax, ecx
add eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
imul eax, eax, 0x41
imul ecx, edx
mov edx, dword [esp + 0xc]
imul ecx, edx
imul ecx, ecx, 0x47
add eax, ecx
mov ecx, dword [esp + 0xc]
imul ecx, ecx, 0x2f
sub eax, ecx
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + ecx - 0x18]
mov dword [esp + 0xc], eax
cmp edi, ebx
je 0x42b3c5
lea esi, [ebx + 0x10]
cmp dword [esi], edi
je 0x42b3c5
call fcn.00403fe4
fld qword [0x477860]
fstp qword [esp + 0xc]
fld qword [esp + 0xc]
fsub qword [esp + 0xc]
fstp qword [esp + 0xc]
test ebx, ebx
je 0x42b3e4
lea eax, [ebx + 4]
jmp 0x42b3e6
xor eax, eax
mov edi, dword [esp + 0x24]
cmp edi, eax
je 0x42b3fa
lea esi, [ebx + 0x14]
cmp dword [esi], edi
je 0x42b3fa
call fcn.00403fe4
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0xc]
mov esi, eax
mov byte [esp + 0x38], 3
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42b41a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [esp + 0x38], 2
mov eax, dword [esp + 0x28]
test eax, eax
je 0x42b42d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [esp + 0x38], 1
mov eax, dword [esp + 0x20]
test eax, eax
je 0x42b440
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [esp + 0x38], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x42b453
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42b466
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
jmp 0x42b4a4
mov byte [esp + 0x38], 1
cmp ecx, edi
je 0x42b47d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x38], 0
cmp eax, edi
je 0x42b48c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x42b49f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004002
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4