Function at 0x4c1c80
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x18]
mov edx, dword [0x54bc08]
fld dword [0x549a70]
lea eax, [eax + eax*2]
push ebx
shl eax, 2
push ebp
push esi
xor ecx, ecx
lea esi, [eax + edx]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
fadd dword [esi + 4]
push edi
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x403730]
mov eax, dword [esp + 0x28]
mov dword [esi + 4], eax
fnstsw ax
test ah, 0x41
jne 0x4c1cd0
mov dword [esi + 4], ecx
fld dword [esi + 8]
fcomp dword [0x4014c8]
fnstsw ax
test ah, 0x41
jne 0x4c1ceb
fld dword [esi + 8]
fsub dword [0x549a70]
jmp 0x4c1d10
push 0x320
call fcn.0042fad0
add eax, 0x190
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fstp qword [esp + 0x1c]
fld dword [0x549a70]
fmul qword [esp + 0x1c]
fstp dword [esi + 8]
fld dword [esi + 8]
call dword [sym.imp.MSVBVM60.DLL___vbaFPFix]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x4014c8]
fnstsw ax
test ah, 1
jne 0x4c1d47
fld dword [esp + 0x28]
fcomp dword [0x402760]
fnstsw ax
test ah, 0x41
je 0x4c1d47
mov byte [esi], 0
jmp 0x4c1d93
fld dword [esp + 0x28]
fcomp dword [0x402408]
fnstsw ax
test ah, 1
jne 0x4c1d6e
fld dword [esp + 0x28]
fcomp dword [0x403030]
fnstsw ax
test ah, 0x41
je 0x4c1d6e
mov byte [esi], 1
jmp 0x4c1d93
fld dword [esp + 0x28]
fcomp dword [0x40372c]
fnstsw ax
test ah, 1
jne 0x4c1d93
fld dword [esp + 0x28]
fcomp dword [0x403728]
fnstsw ax
test ah, 0x41
je 0x4c1d93
mov byte [esi], 2
fld dword [esi + 4]
call dword [sym.imp.MSVBVM60.DLL___vbaFPFix]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x4014c8]
fnstsw ax
test ah, 1
jne 0x4c1dc8
fld dword [esp + 0x28]
fcomp dword [0x403724]
fnstsw ax
test ah, 0x41
je 0x4c1dc8
mov byte [esi + 1], 0
jmp 0x4c1e38
fld dword [esp + 0x28]
fcomp dword [0x401738]
fnstsw ax
test ah, 1
jne 0x4c1dea
fld dword [esp + 0x28]
fcomp dword [0x403720]
fnstsw ax
test ah, 0x41
jne 0x4c1e0c
fld dword [esp + 0x28]
fcomp dword [0x4024dc]
fnstsw ax
test ah, 1
jne 0x4c1e12
fld dword [esp + 0x28]
fcomp dword [0x403730]
fnstsw ax
test ah, 0x41
je 0x4c1e12
mov byte [esi + 1], 1
jmp 0x4c1e38
fld dword [esp + 0x28]
fcomp dword [0x401730]
fnstsw ax
test ah, 1
jne 0x4c1e38
fld dword [esp + 0x28]
fcomp dword [0x4024e0]
fnstsw ax
test ah, 0x41
je 0x4c1e38
mov byte [esi + 1], 2
mov esi, dword [esp + 0x34]
mov bl, byte [esi + 3]
test bl, bl
jbe 0x4c1fd1
cmp byte [esi], 1
jne 0x4c1f07
cmp bl, 0x7f
jbe 0x4c1e5d
mov dword [esp + 0x14], 0x3c0
mov eax, dword [0x54bc14]
mov ecx, ebx
and ecx, 0xff
mov edi, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
sub ecx, edi
lea eax, [edx + ecx*8]
mov cl, byte [edx + ecx*8 + 4]
cmp cl, 0xff
jae 0x4c1fd1
mov dl, byte [eax + 2]
lea edi, [esp + 0x10]
mov byte [esp + 0x28], dl
mov edx, dword [0x549b40]
push edi
push 0x3f800000
mov ebp, dword [edx]
xor edx, edx
mov dl, byte [eax + 3]
and ecx, 0xff
push edx
mov edx, dword [esp + 0x34]
and edx, 0xff
push edx
movsx edx, word [eax]
movzx di, byte [esp + 0x38]
push edx
movzx dx, byte [esi + 4]
add edx, 8
imul edx, edi
mov edi, dword [esp + 0x28]
movsx edx, dx
add edx, edi
push edx
xor edx, edx
mov dl, byte [eax + 5]
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x25]
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [0x54bc24]
lea ecx, [ecx + eax - 0x1f]
mov eax, dword [0x549b40]
push ecx
push edx
push eax
call dword [ebp + 0x7c]
test eax, eax
fnclex
jge 0x4c1fd1
jmp 0x4c1fbc
mov dl, 0x7f
mov ecx, ebx
cmp dl, bl
sbb eax, eax
and ecx, 0xff
and eax, 0x514
add eax, 0x780
mov dword [esp + 0x14], eax
mov eax, dword [0x54bc18]
mov edi, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
sub ecx, edi
lea eax, [edx + ecx*8]
mov cl, byte [edx + ecx*8 + 4]
cmp cl, 0xff
jae 0x4c1fd1
mov dl, byte [eax + 2]
lea edi, [esp + 0x10]
mov byte [esp + 0x28], dl
mov edx, dword [0x549b40]
push edi
push 0x3f800000
mov ebp, dword [edx]
xor edx, edx
mov dl, byte [eax + 3]
and ecx, 0xff
push edx
mov edx, dword [esp + 0x34]
and edx, 0xff
push edx
movsx edx, word [eax]
movzx di, byte [esp + 0x38]
push edx
movzx dx, byte [esi + 4]
add edx, 8
imul edx, edi
mov edi, dword [esp + 0x28]
movsx edx, dx
add edx, edi
push edx
xor edx, edx
mov dl, byte [eax + 5]
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x25]
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [0x54bc24]
lea ecx, [ecx + eax - 0x1f]
mov eax, dword [0x549b40]
push ecx
push edx
push eax
call dword [ebp + 0x7c]
test eax, eax
fnclex
jge 0x4c1fd1
mov ecx, dword [0x549b40]
push 0x7c
push 0x420aa0
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
lea edi, [esp + 0x10]
mov al, byte [esi]
push edi
mov ebp, dword [esp + 0x1c]
movzx di, byte [esi + 1]
shl edi, 6
movsx edi, di
push 0x3f800000
push 0x40
push 0x27
push edi
mov edi, dword [0x54bc08]
mov ecx, dword [0x549b40]
movzx ax, al
movzx di, byte [edi + ebp + 1]
lea eax, [eax + eax*2]
mov edx, dword [ecx]
lea eax, [edi + eax - 3]
lea edi, [eax + eax*4]
shl edi, 3
sub edi, eax
movsx eax, di
push eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [0x54bc28]
push eax
push ecx
call dword [edx + 0x7c]
test eax, eax
fnclex
jge 0x4c204b
mov ecx, dword [0x549b40]
push 0x7c
push 0x420aa0
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
cmp byte [esi], 1
jne 0x4c2120
mov eax, dword [0x54bc1c]
xor ecx, ecx
mov cl, byte [esi + 2]
xor dx, dx
mov edi, dword [eax + 0x14]
sub ecx, edi
mov edi, dword [eax + 0xc]
movzx bp, byte [esi + 5]
lea ecx, [ecx + ecx*4]
shl ecx, 1
mov al, byte [ecx + edi + 2]
mov dl, al
imul ebp, edx
lea edx, [ebp + ebp*2]
mov ebp, dword [esp + 0x18]
movsx edx, dx
mov dword [esp + 0x34], edx
mov edx, dword [0x54bc08]
mov dl, byte [edx + ebp]
lea ebp, [esp + 0x10]
mov byte [esp + 0x28], dl
and edx, 0xff
add edx, ecx
push ebp
add edx, edi
push 0x3f800000
mov dword [esp + 0x20], edx
mov edx, dword [0x549b40]
mov edx, dword [edx]
mov dword [esp + 0x24], edx
xor edx, edx
mov dl, byte [ecx + edi + 3]
push edx
mov edx, eax
imul byte [esp + 0x34]
movsx ecx, word [ecx + edi]
and edx, 0xff
and eax, 0xff
push edx
push ecx
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
add eax, ecx
xor edx, edx
push eax
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dl, byte [eax + 7]
mov cl, byte [eax + 4]
mov eax, dword [esp + 0x44]
add edx, edi
push edx
mov edx, dword [0x54bc2c]
add ecx, eax
mov eax, dword [0x549b40]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push eax
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4c21fc
jmp 0x4c21e7
mov eax, dword [0x54bc20]
xor ecx, ecx
mov cl, byte [esi + 2]
mov edi, dword [eax + 0x14]
sub ecx, edi
mov edi, dword [eax + 0xc]
movzx dx, byte [esi + 5]
lea ecx, [ecx + ecx*4]
shl ecx, 1
mov al, byte [ecx + edi + 2]
movzx bp, al
imul edx, ebp
add edx, 0x15f
mov ebp, dword [esp + 0x18]
lea edx, [edx + edx*2]
movsx edx, dx
mov dword [esp + 0x34], edx
mov edx, dword [0x54bc08]
mov dl, byte [edx + ebp]
lea ebp, [esp + 0x10]
mov byte [esp + 0x28], dl
and edx, 0xff
add edx, ecx
push ebp
add edx, edi
push 0x3f800000
mov dword [esp + 0x24], edx
mov edx, dword [0x549b40]
mov edx, dword [edx]
mov dword [esp + 0x20], edx
xor edx, edx
mov dl, byte [ecx + edi + 3]
push edx
mov edx, eax
imul byte [esp + 0x34]
movsx ecx, word [ecx + edi]
and edx, 0xff
and eax, 0xff
push edx
push ecx
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
add eax, ecx
xor edx, edx
push eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dl, byte [eax + 7]
mov cl, byte [eax + 4]
mov eax, dword [esp + 0x44]
add edx, edi
push edx
mov edx, dword [0x54bc2c]
add ecx, eax
mov eax, dword [0x549b40]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4c21fc
mov edx, dword [0x549b40]
push 0x7c
push 0x420aa0
push edx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
test bl, bl
jbe 0x4c230b
cmp byte [esi], 1
jne 0x4c2283
mov eax, dword [0x54bc14]
and ebx, 0xff
lea edx, [esp + 0x10]
mov edi, dword [0x549b40]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
sub ebx, ecx
push edx
xor edx, edx
push 0x3f800000
mov dl, byte [eax + ebx*8 + 3]
lea ebx, [eax + ebx*8]
xor eax, eax
push edx
movsx edx, word [ebx]
mov al, byte [ebx + 2]
mov ecx, dword [edi]
push eax
push edx
xor edx, edx
mov dl, byte [esi + 4]
mov esi, dword [esp + 0x28]
imul edx, eax
add edx, esi
xor eax, eax
mov al, byte [ebx + 7]
push edx
mov edx, dword [esp + 0x48]
lea eax, [eax + edx - 0x25]
xor edx, edx
mov dl, byte [ebx + 6]
push eax
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x1f]
mov eax, dword [0x54bc24]
push edx
push eax
push edi
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4c230b
jmp 0x4c22f6
mov eax, dword [0x54bc18]
and ebx, 0xff
mov edi, dword [0x549b40]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
sub ebx, ecx
xor eax, eax
mov ecx, dword [edi]
lea ebx, [edx + ebx*8]
lea edx, [esp + 0x10]
push edx
xor edx, edx
mov dl, byte [ebx + 3]
mov al, byte [ebx + 2]
push 0x3f800000
push edx
movsx edx, word [ebx]
push eax
push edx
xor edx, edx
mov dl, byte [esi + 4]
mov esi, dword [esp + 0x28]
imul edx, eax
add edx, esi
xor eax, eax
mov al, byte [ebx + 7]
push edx
mov edx, dword [esp + 0x48]
lea eax, [eax + edx - 0x25]
xor edx, edx
mov dl, byte [ebx + 6]
push eax
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x1f]
mov eax, dword [0x54bc24]
push edx
push eax
push edi
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4c230b
mov ecx, dword [0x549b40]
push 0x7c
push 0x420aa0
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10