Function at 0x4d3780
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x44
mov ax, word [0x56ac18]
mov dword [esp + 0x3c], 0
sub ax, 0x48
jo 0x4d4013
movsx eax, ax
test eax, eax
mov dword [esp + 0x2c], eax
jge 0x4d37b5
add eax, 0x138
jo 0x4d4013
mov dword [esp + 0x2c], eax
push ebx
push ebp
push esi
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaUI1I2]
push edi
mov ecx, 1
call esi
mov ecx, 0x18
mov byte [esp + 0x11], al
call esi
mov bl, al
mov ecx, 1
mov byte [esp + 0x13], bl
call esi
mov ebp, dword [esp + 0x58]
cmp al, bl
mov byte [esp + 0x2c], al
ja 0x4d3e53
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
xor ecx, ecx
cmp al, byte [edx]
setne cl
xor edx, edx
cmp al, byte [esi]
mov esi, dword [esp + 0x64]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x68]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x6c]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x70]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x74]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x78]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x7c]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x80]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x84]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
setne dl
and ecx, edx
mov esi, dword [esp + 0x88]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x8c]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x90]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x94]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x98]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0x9c]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0xa0]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0xa4]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0xa8]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0xac]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
setne dl
and ecx, edx
neg ecx
mov esi, dword [esp + 0xb0]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0xb4]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
mov esi, dword [esp + 0xb8]
setne dl
and ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp al, byte [esi]
setne dl
test edx, ecx
jne 0x4d3e3f
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], 2
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaUI1I2]
mov ecx, 3
call esi
mov bl, al
mov ecx, 1
mov byte [esp + 0x12], bl
call esi
cmp al, bl
mov byte [esp + 0x34], al
ja 0x4d3ce8
mov eax, dword [esp + 0x18]
shl eax, 7
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
movzx dx, byte [esp + 0x11]
and eax, 0xff
mov word [esp + 0x44], dx
dec eax
mov dword [esp + 0x40], eax
movsx eax, word [esp + 0x38]
add eax, 0xfffffffe
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x58]
mov ebp, dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
xor ecx, ecx
mov dword [esp + 0x20], 0
mov cl, byte [edx]
mov edi, ecx
cmp edi, 2
jb 0x4d3a72
call ebp
mov ebx, dword [esp + 0x40]
cmp ebx, 0x18
jb 0x4d3a7d
call ebp
cmp dword [esp + 0x14], 0xa
jb 0x4d3a86
call ebp
mov eax, dword [esp + 0x34]
and eax, 0xff
lea esi, [eax - 1]
cmp esi, 3
jb 0x4d3a99
call ebp
mov edx, dword [esp + 0x14]
lea ecx, [esi + esi*4]
mov ebp, dword [esp + 0x28]
lea eax, [edx + ecx*2]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8]
mov eax, dword [0x56aecc]
lea edx, [edi + ecx*2]
xor cx, cx
mov al, byte [edx + eax]
imul byte [esp + 0x11]
mov cl, al
add cx, bp
jo 0x4d4013
call dword [sym.imp.MSVBVM60.DLL___vbaUI1I2]
mov byte [esp + 0x50], al
mov edi, dword [esp + 0x50]
and edi, 0xff
cmp edi, 0x80
jb 0x4d3aec
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp dword [esp + 0x18], 0x138
jb 0x4d3afc
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [esp + 0x30]
mov edx, dword [0x56abbc]
fld dword [esp + 0x24]
add ecx, edi
mov eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x48], eax
fadd dword [esp + 0x48]
fstp dword [esp + 0x24]
fnstsw ax
test al, 0xd
jne 0x4d400e
xor ecx, ecx
mov cl, byte [edx]
mov edi, ecx
cmp edi, 2
jb 0x4d3b3a
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp ebx, 0x18
jb 0x4d3b45
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp dword [esp + 0x14], 0xa
jb 0x4d3b52
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp esi, 3
jb 0x4d3b5d
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [esp + 0x14]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*2]
lea edx, [eax + eax*2]
lea eax, [ebx + edx*8]
mov edx, dword [0x56af34]
lea ecx, [edi + eax*2]
mov al, byte [ecx + edx]
mov ecx, dword [esp + 0x58]
imul byte [esp + 0x11]
movzx di, al
add di, bp
jo 0x4d4013
xor eax, eax
mov al, byte [ecx]
mov ebp, eax
cmp ebp, 2
jb 0x4d3b9f
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp ebx, 0x18
jb 0x4d3baa
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp dword [esp + 0x14], 0xa
jb 0x4d3bb7
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp esi, 3
jb 0x4d3bc2
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [esp + 0x14]
lea edx, [esi + esi*4]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x40]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*8]
mov edx, dword [0x56af00]
lea ecx, [ebp + eax*2]
mov bp, word [esp + 0x44]
mov al, byte [ecx + edx]
imul byte [esp + 0x11]
movzx si, al
add si, word [esp + 0x28]
jo 0x4d4013
sar bp, 0xf
mov ebx, ebp
mov eax, ebp
xor ebx, edi
xor eax, esi
cmp ax, bx
jg 0x4d3ccc
movsx edi, si
cmp edi, 0x80
jb 0x4d3c21
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp dword [esp + 0x18], 0x138
jb 0x4d3c31
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [esp + 0x30]
mov edx, dword [0x56abbc]
add ecx, edi
fld dword [edx + ecx*4]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 1
jne 0x4d3c7c
cmp edi, 0x80
jb 0x4d3c59
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
cmp dword [esp + 0x18], 0x138
jb 0x4d3c69
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [esp + 0x30]
mov ecx, dword [0x56abbc]
add eax, edi
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x20], edx
mov ax, word [esp + 0x44]
mov ecx, ebp
add ax, si
jo 0x4d4013
mov esi, eax
xor ecx, esi
cmp cx, bx
jle 0x4d3c10
fld dword [esp + 0x20]
fcomp dword [0x401fc8]
fnstsw ax
test ah, 0x41
jne 0x4d3ccc
fld dword [esp + 0x20]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 0x40
je 0x4d3ccc
mov dx, word [esp + 0x1c]
add dx, 1
jo 0x4d4013
mov dword [esp + 0x1c], edx
mov al, byte [esp + 0x34]
mov cl, byte [esp + 0x12]
add al, 1
jb 0x4d4013
cmp al, cl
mov byte [esp + 0x34], al
jbe 0x4d3a53
mov ecx, dword [esp + 0x38]
mov ax, 0xb
sub ax, cx
mov dx, 0x12
jo 0x4d4013
imul ax, ax, 3
jo 0x4d4013
sub dx, word [esp + 0x1c]
jo 0x4d4013
cmp dx, ax
jg 0x4d3d4a
mov eax, dword [esp + 0x18]
mov esi, 0x138
add eax, 8
jo 0x4d4013
cdq
idiv esi
add cx, 1
jo 0x4d4013
mov eax, ecx
cmp ax, 0xb
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], edx
jle 0x4d39fd
cmp word [esp + 0x1c], 0x12
jl 0x4d3e17
mov ecx, dword [0x56afc4]
fld dword [esp + 0x24]
fcomp dword [ecx + 0x38]
fnstsw ax
test ah, 1
jne 0x4d3e17
mov ax, word [0x56ac18]
mov edx, dword [esp + 0x24]
mov word [ecx + 0x3e], ax
mov ecx, dword [0x56afc4]
xor eax, eax
mov dword [ecx + 0x38], edx
mov ecx, dword [esp + 0x58]
mov al, byte [ecx]
mov esi, eax
cmp esi, 2
jb 0x4d3d9a
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [0x56afc4]
mov cl, byte [esp + 0x2c]
mov eax, dword [edx + 0x10]
xor edx, edx
mov byte [eax + esi], cl
mov eax, dword [esp + 0x58]
mov dl, byte [eax]
mov esi, edx
cmp esi, 2
jb 0x4d3dbf
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
fld qword [0x401d30]
cmp dword [section..data], 0
jne 0x4d3dd6
fdiv qword [0x401c58]
jmp 0x4d3de7
push dword [0x401c5c]
push dword [0x401c58]
call sub.MSVBVM60.DLL__adj_fdiv_m64
fnstsw ax
test al, 0xd
jne 0x4d400e
call dword [sym.imp.MSVBVM60.DLL___vbaFpI2]
mov ecx, dword [0x56afc4]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x1c]
mov word [edx + esi*2], ax
call dword [sym.imp.MSVBVM60.DLL___vbaUI1I2]
mov ecx, dword [0x56afc4]
mov byte [ecx + 0x3c], al
mov ax, word [esp + 0x28]
add ax, 1
jo 0x4d4013
test ax, ax
mov dword [esp + 0x28], eax
jle 0x4d39e3
mov ebp, dword [esp + 0x58]
mov al, byte [esp + 0x2c]
mov bl, byte [esp + 0x13]
add al, 1
jb 0x4d4013
cmp al, bl
mov byte [esp + 0x2c], al
jbe 0x4d37ee
xor edx, edx
mov dl, byte [ebp]
mov esi, edx
cmp esi, 2
jb 0x4d3e65
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x56afc4]
mov ecx, dword [eax + 0x2c]
cmp word [ecx + esi*2], 0
jle 0x4d3ebd
xor edx, edx
mov dl, byte [ebp]
mov edi, edx
cmp edi, 2
jb 0x4d3e86
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
xor eax, eax
mov al, byte [ebp]
mov esi, eax
cmp esi, 2
jb 0x4d3e98
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [0x56afc4]
mov eax, dword [ecx + 0x2c]
mov dx, word [eax + edi*2]
pop edi
sub dx, 1
jo 0x4d4013
mov word [eax + esi*2], dx
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x64
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
xor eax, eax
mov al, byte [ebp]
mov edi, eax
cmp edi, 2
jb 0x4d3ed1
call ebx
xor ecx, ecx
mov cl, byte [ebp]
mov esi, ecx
cmp esi, 2
jb 0x4d3edf
call ebx
mov eax, dword [0x56afc4]
xor ecx, ecx
mov edx, dword [eax + 0x2c]
cmp word [edx + edi*2], cx
mov edx, dword [eax + 0x10]
setne cl
xor al, al
cmp al, byte [edx + esi]
sbb edx, edx
inc edx
or ecx, edx
jne 0x4d4004
xor eax, eax
mov al, byte [ebp]
mov esi, eax
cmp esi, 2
jb 0x4d3f11
call ebx
mov ecx, dword [0x56afc4]
add ecx, 0x3e
push ecx
call fcn.004d4d10
mov edx, dword [0x56ae30]
mov byte [esi + edx], al
lea eax, [esp + 0x4c]
push eax
push 0
mov dword [esp + 0x54], 0x56abb0
call dword [sym.imp.MSVBVM60.DLL___vbaErase]
xor ecx, ecx
mov cl, byte [ebp]
mov esi, ecx
cmp esi, 2
jb 0x4d3f4c
call ebx
xor edx, edx
mov dl, byte [ebp]
mov edi, edx
cmp edi, 2
jb 0x4d3f5a
call ebx
mov eax, dword [0x56afc4]
xor ecx, ecx
mov eax, dword [eax + 0x10]
cmp byte [eax + edi], 0x18
setne cl
xor edx, edx
cmp byte [eax + esi], 0x17
setne dl
test edx, ecx
jne 0x4d3f8e
mov eax, dword [0x56ae14]
mov word [eax], 0
mov ecx, dword [0x56ae14]
mov word [ecx + 2], 0
cmp byte [0x56a31b], 1
jne 0x4d3fb8
xor edx, edx
mov dl, byte [ebp]
mov esi, edx
cmp esi, 2
jb 0x4d3fa5
call ebx
mov eax, dword [0x56afc4]
push ebp
mov ecx, dword [eax + 0x10]
add ecx, esi
push ecx
call 0x4d46c0
jmp 0x4d3fd6
xor edx, edx
mov dl, byte [ebp]
mov esi, edx
cmp esi, 2
jb 0x4d3fc6
call ebx
mov eax, dword [0x56afc4]
mov ecx, dword [eax + 0x10]
add ecx, esi
push ecx
call fcn.004e9c20
xor edx, edx
mov dl, byte [ebp]
mov esi, edx
cmp esi, 2
jb 0x4d3fe4
call ebx
xor ecx, ecx
call dword [sym.imp.MSVBVM60.DLL___vbaUI1I2]
mov ecx, dword [0x56afc4]
mov edx, dword [ecx + 0x10]
mov byte [edx + esi], al
mov eax, dword [0x56afc4]
mov dword [eax + 0x38], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x64
jmp fcn.0040492c
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop
nop
nop
nop
nop