Function at 0x406230
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x60
fldz
push ebx
push ebp
fstp qword [esp + 0x28]
push esi
push edi
mov edi, eax
xor ebp, ebp
cmp edi, ebp
je 0x406602
mov eax, dword [edi + 8]
mov dword [edi + 8], ebp
cmp eax, ebp
jne 0x406602
push 0x10
call sub.gdiplus.dll_GdipAlloc
mov ebx, eax
cmp ebx, ebp
je 0x406287
mov esi, edi
call fcn.004014c0
mov dword [esp + 0x20], eax
call fcn.00401490
mov ecx, dword [esp + 0x20]
mov edx, eax
mov esi, ebx
call fcn.00401f90
mov dword [esp + 0x10], eax
jmp 0x40628d
mov dword [esp + 0x10], ebp
mov eax, ebp
mov dword [esp + 0x14], ebp
cmp eax, ebp
je 0x4062a7
mov edx, dword [eax + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
call sub.gdiplus.dll_GdipGetImageGraphicsContext
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ebp
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, ebp
je 0x4062c8
mov dword [edi + 8], eax
mov ecx, dword [edi + 4]
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
xor esi, esi
push ecx
mov dword [esp + 0x20], esi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, esi
je 0x4062e7
mov dword [edi + 8], eax
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x24], esi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, esi
je 0x406304
mov dword [edi + 8], eax
mov edx, dword [edi + 4]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push ecx
push edx
mov dword [esp + 0x28], 0
call sub.gdiplus.dll_GdipGetImageWidth
test eax, eax
je 0x406325
mov dword [edi + 8], eax
fldz
mov eax, dword [esp + 0x20]
fst dword [esp + 0x38]
fst dword [esp + 0x3c]
fild dword [esp + 0x20]
test eax, eax
jge 0x406341
fadd dword [0x51266c]
mov dword [esp + 0x24], esi
fstp dword [esp + 0x40]
fild dword [esp + 0x24]
test esi, esi
jge 0x406357
fadd dword [0x51266c]
mov dword [esp + 0x24], ebp
fstp dword [esp + 0x44]
fild dword [esp + 0x24]
test ebp, ebp
jge 0x40636d
fadd dword [0x51266c]
sub esp, 0x10
mov dword [esp + 0x34], ebx
fstp dword [esp + 0xc]
fild dword [esp + 0x34]
test ebx, ebx
jge 0x406386
fadd dword [0x51266c]
fstp dword [esp + 8]
xor ecx, ecx
lea eax, [esp + 0x48]
fst dword [esp + 4]
lea esi, [esp + 0x38]
fstp dword [esp]
call fcn.00405550
mov ecx, dword [esp + 0x28]
push ecx
call sub.gdiplus.dll_GdipDeleteGraphics
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea edx, [esp + 0x20]
push edx
xor ebx, ebx
push eax
mov dword [esp + 0x28], ebx
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, ebx
je 0x4063c9
mov dword [edi + 8], eax
mov edx, dword [edi + 4]
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x24], ebx
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, ebx
je 0x4063e6
mov dword [edi + 8], eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x58]
push ecx
push 0x26200a
push 1
lea edx, [esp + 0x54]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], esi
mov eax, dword [edi + 4]
push edx
push eax
call sub.gdiplus.dll_GdipBitmapLockBits
cmp eax, ebx
je 0x40641b
mov dword [edi + 8], eax
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x68]
lea ecx, [esi*4]
sub ebx, ecx
mov ecx, dword [esp + 0x5c]
cmp ecx, 0x1e
jle 0x406444
mov ebp, 0x1e
mov dword [esp + 0x20], ebp
jmp 0x40644a
mov ebp, ecx
mov dword [esp + 0x20], ecx
test ebp, ebp
jle 0x4065b4
fld qword [0x512770]
mov dword [esp + 0x1c], ebp
fld qword [0x512768]
fld qword [0x512760]
fldz
fld qword [esp + 0x30]
xor edx, edx
fld st(1)
cmp esi, 4
jl 0x406559
lea ecx, [esi - 4]
shr ecx, 2
inc ecx
lea edx, [ecx*4]
movzx ebp, byte [eax + 2]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax + 1]
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
fmul st(6)
movzx ebp, byte [eax + 3]
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
fmul st(6)
movzx ebp, byte [eax + 6]
faddp st(1)
add eax, 0x10
sub ecx, 1
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 0xb]
fmul st(5)
faddp st(1)
faddp st(1)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 9]
fmul st(6)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 6]
fmul st(6)
faddp st(1)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 7]
fmul st(5)
faddp st(1)
faddp st(1)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 5]
fmul st(6)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 2]
fmul st(6)
faddp st(1)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 3]
fmul st(5)
faddp st(1)
faddp st(1)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
movzx ebp, byte [eax - 1]
fmul st(6)
fild dword [esp + 0x18]
mov dword [esp + 0x18], ebp
fmul st(6)
faddp st(1)
fild dword [esp + 0x18]
fmul st(5)
faddp st(1)
faddp st(1)
jne 0x406489
mov ebp, dword [esp + 0x20]
cmp edx, esi
jge 0x406599
mov ecx, esi
sub ecx, edx
movzx edx, byte [eax + 2]
mov dword [esp + 0x18], edx
movzx edx, byte [eax + 1]
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
movzx edx, byte [eax + 3]
fmul st(6)
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
fmul st(6)
add eax, 4
sub ecx, 1
faddp st(1)
fild dword [esp + 0x18]
fmul st(5)
faddp st(1)
faddp st(1)
jne 0x406561
add eax, ebx
faddp st(1)
sub dword [esp + 0x1c], 1
jne 0x40646e
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(0)
fstp qword [esp + 0x30]
mov ecx, dword [edi + 4]
lea eax, [esp + 0x58]
push eax
push ecx
call sub.gdiplus.dll_GdipBitmapUnlockBits
test eax, eax
je 0x4065c9
mov dword [edi + 8], eax
imul ebp, esi
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
fdivr qword [esp + 0x30]
call fcn.004eadb0
mov edx, dword [edi]
mov esi, eax
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
xor eax, eax
cmp esi, 0xa0
setg al
dec eax
and eax, 0xffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, dword [esp + 0x74]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret