Function at 0x42a410
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x402dc6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x402238
xor eax, eax
push 3
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x54]
push 0x40ace8
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaAryConstruct2]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 8]
mov dword [ecx], 0x67452301
mov ecx, dword [ebp + 0x28]
mov dword [edx], 0xefcdab89
mov edx, dword [ebp + 0x2c]
mov dword [eax], 0x98badcfe
mov dword [ecx], 0x10325476
mov dword [edx], 0xc3d2e1f0
mov eax, dword [edi]
push eax
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaUbound]
mov esi, eax
add esi, 1
jo 0x42abb2
push esi
call fcn.0042a2f0
mov dword [ebp - 0x38], eax
mov eax, esi
cdq
and edx, 0x1fffffff
lea ecx, [ebp - 0x38]
add eax, edx
lea edx, [ebp - 0x18]
push ecx
mov ebx, eax
push edx
push 4
sar ebx, 0x1d
call dword [sym.imp.MSVBVM60.DLL___vbaCopyBytes]
mov eax, esi
push 0
add eax, 8
jo 0x42abb2
and al, 0xc0
add eax, 0x3f
jo 0x42abb2
push eax
push 1
push 0x11
push edi
push 1
push 0x80
call dword [sym.imp.MSVBVM60.DLL___vbaRedimPreserve]
mov eax, dword [edi]
add esp, 0x1c
test eax, eax
je 0x42a518
cmp word [eax], 1
jne 0x42a518
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
sub esi, edx
cmp esi, ecx
jb 0x42a520
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
jmp 0x42a520
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov esi, eax
mov ecx, 0x80
call dword [sym.imp.MSVBVM60.DLL___vbaUI1I2]
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov byte [edx + esi], al
mov eax, dword [edi]
push eax
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaUbound]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi]
test eax, eax
je 0x42a56d
cmp word [eax], 1
jne 0x42a56d
mov esi, dword [ebp - 0x3c]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
sub esi, 4
jo 0x42abb2
sub esi, edx
cmp esi, ecx
jb 0x42a575
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
jmp 0x42a575
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov esi, eax
mov ecx, ebx
call dword [sym.imp.MSVBVM60.DLL___vbaUI1I4]
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov byte [edx + esi], al
mov eax, dword [edi]
test eax, eax
je 0x42a5b5
cmp word [eax], 1
jne 0x42a5b5
mov esi, dword [ebp - 0x3c]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
mov ebx, esi
sub ebx, 3
jo 0x42abb2
sub ebx, edx
cmp ebx, ecx
jb 0x42a5b1
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, ebx
jmp 0x42a5be
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov esi, dword [ebp - 0x3c]
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov cl, byte [ebp - 0x15]
mov byte [edx + eax], cl
mov eax, dword [edi]
test eax, eax
je 0x42a5f6
cmp word [eax], 1
jne 0x42a5f6
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
mov ebx, esi
sub ebx, 2
jo 0x42abb2
sub ebx, edx
cmp ebx, ecx
jb 0x42a5f2
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, ebx
jmp 0x42a5fc
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [edi]
mov ecx, dword [edx + 0xc]
mov dl, byte [ebp - 0x16]
mov byte [ecx + eax], dl
mov eax, dword [edi]
test eax, eax
je 0x42a634
cmp word [eax], 1
jne 0x42a634
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
mov ebx, esi
sub ebx, 1
jo 0x42abb2
sub ebx, edx
cmp ebx, ecx
jb 0x42a630
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, ebx
jmp 0x42a63a
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov cl, byte [ebp - 0x17]
mov byte [edx + eax], cl
mov eax, dword [edi]
test eax, eax
je 0x42a669
cmp word [eax], 1
jne 0x42a669
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
mov ebx, esi
sub ebx, edx
cmp ebx, ecx
jb 0x42a665
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, ebx
jmp 0x42a66f
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [edi]
mov ecx, dword [edx + 0xc]
mov dl, byte [ebp - 0x18]
mov byte [ecx + eax], dl
cmp dword [ebp - 0x1c], esi
jge 0x42ab87
xor eax, eax
mov ecx, 0xf
mov dword [ebp - 0x14], eax
cmp ax, cx
jg 0x42a7cd
mov eax, dword [edi]
test eax, eax
je 0x42a6bd
cmp word [eax], 1
jne 0x42a6bd
mov ebx, dword [ebp - 0x1c]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
mov esi, ebx
sub esi, edx
cmp esi, ecx
jb 0x42a6b9
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, esi
jmp 0x42a6c6
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [edi]
test ecx, ecx
mov edx, dword [ecx + 0xc]
mov al, byte [edx + eax]
mov byte [ebp - 0x15], al
je 0x42a6fc
cmp word [ecx], 1
jne 0x42a6fc
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov esi, ebx
add esi, 1
jo 0x42abb2
sub esi, edx
cmp esi, eax
jb 0x42a6f8
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, esi
jmp 0x42a702
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [edi]
test ecx, ecx
mov edx, dword [ecx + 0xc]
mov al, byte [edx + eax]
mov byte [ebp - 0x16], al
je 0x42a738
cmp word [ecx], 1
jne 0x42a738
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov esi, ebx
add esi, 2
jo 0x42abb2
sub esi, edx
cmp esi, eax
jb 0x42a734
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, esi
jmp 0x42a73e
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [edi]
test ecx, ecx
mov edx, dword [ecx + 0xc]
mov al, byte [edx + eax]
mov byte [ebp - 0x17], al
je 0x42a774
cmp word [ecx], 1
jne 0x42a774
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov esi, ebx
add esi, 3
jo 0x42abb2
sub esi, edx
cmp esi, eax
jb 0x42a770
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, esi
jmp 0x42a77a
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
lea ecx, [ebp - 0x18]
push ecx
mov al, byte [edx + eax]
lea edx, [ebp - 0x38]
push edx
push 4
mov byte [ebp - 0x18], al
call dword [sym.imp.MSVBVM60.DLL___vbaCopyBytes]
movsx esi, word [ebp - 0x14]
cmp esi, 0x51
jb 0x42a7a4
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x38]
add ebx, 4
mov dword [ecx + esi*4], eax
mov eax, 1
jo 0x42abb2
add ax, word [ebp - 0x14]
mov dword [ebp - 0x1c], ebx
jo 0x42abb2
jmp 0x42a685
mov dword [ebp - 0x88], 1
mov esi, 0x10
mov eax, 0x4f
cmp si, ax
jg 0x42a8a6
mov dx, si
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
sub dx, 3
jo 0x42abb2
movsx eax, dx
cmp eax, 0x51
mov dword [ebp - 0x70], eax
jb 0x42a80a
call edi
mov ax, si
sub ax, 8
jo 0x42abb2
movsx eax, ax
cmp eax, 0x51
mov dword [ebp - 0x74], eax
jb 0x42a824
call edi
mov cx, si
sub cx, 0xe
jo 0x42abb2
movsx eax, cx
cmp eax, 0x51
mov dword [ebp - 0x78], eax
jb 0x42a83e
call edi
mov dx, si
sub dx, 0x10
jo 0x42abb2
movsx ebx, dx
cmp ebx, 0x51
jb 0x42a859
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
movsx edi, si
cmp edi, 0x51
jb 0x42a867
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x78]
mov ecx, dword [eax + ebx*4]
mov ebx, dword [eax + edx*4]
mov edx, dword [ebp - 0x74]
xor ecx, ebx
mov ebx, dword [eax + edx*4]
mov edx, dword [ebp - 0x70]
xor ecx, ebx
xor ecx, dword [eax + edx*4]
push ecx
call fcn.0042a320
mov dx, word [ebp - 0x88]
mov ecx, dword [ebp - 0x48]
add dx, si
jo 0x42abb2
mov dword [ecx + edi*4], eax
mov esi, edx
jmp 0x42a7dc
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
mov esi, dword [edx]
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x2c]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 0x28]
mov edi, dword [eax]
mov eax, dword [edx]
mov ebx, dword [ecx]
mov dword [ebp - 0x34], eax
mov eax, 0x13
cmp word [ebp - 0x14], ax
jg 0x42a964
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.0042a350
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x5c], eax
push edx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x60], eax
movsx eax, word [ebp - 0x14]
cmp eax, 0x51
jb 0x42a903
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
movsx eax, word [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x60]
push edx
push eax
call fcn.0042a3a0
mov ecx, dword [ebp + 0xc]
push ecx
push eax
call fcn.0042a3a0
mov edx, esi
mov ecx, edi
not edx
and edx, ebx
and ecx, esi
or edx, ecx
push edx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x34], ebx
push esi
mov dword [ebp - 0x2c], eax
mov ebx, edi
call fcn.0042a3d0
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x20]
mov edi, eax
mov eax, 1
add ax, word [ebp - 0x14]
mov dword [ebp - 0x20], edx
jo 0x42abb2
mov dword [ebp - 0x14], eax
jmp 0x42a8cc
mov dword [ebp - 0x14], 0x14
mov eax, 0x27
cmp word [ebp - 0x14], ax
jg 0x42a9fd
mov eax, dword [ebp - 0x20]
push eax
call fcn.0042a350
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x5c], eax
push ecx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x60], eax
movsx eax, word [ebp - 0x14]
cmp eax, 0x51
jb 0x42a9a2
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
movsx eax, word [ebp - 0x14]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x60]
mov eax, dword [edx + eax*4]
push eax
push ecx
call fcn.0042a3a0
mov edx, dword [ebp + 0x10]
push edx
push eax
call fcn.0042a3a0
mov ecx, ebx
xor ecx, edi
xor ecx, esi
push ecx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x34], ebx
push esi
mov dword [ebp - 0x2c], eax
mov ebx, edi
call fcn.0042a3d0
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x20]
mov edi, eax
mov eax, 1
add ax, word [ebp - 0x14]
mov dword [ebp - 0x20], edx
jo 0x42abb2
mov dword [ebp - 0x14], eax
jmp 0x42a96b
mov dword [ebp - 0x14], 0x28
mov eax, 0x3b
cmp word [ebp - 0x14], ax
jg 0x42aa9c
mov eax, dword [ebp - 0x20]
push eax
call fcn.0042a350
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x5c], eax
push ecx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x60], eax
movsx eax, word [ebp - 0x14]
cmp eax, 0x51
jb 0x42aa3b
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
movsx eax, word [ebp - 0x14]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x60]
mov eax, dword [edx + eax*4]
push eax
push ecx
call fcn.0042a3a0
mov edx, dword [ebp + 0x14]
push edx
push eax
call fcn.0042a3a0
mov ecx, edi
mov edx, edi
or ecx, esi
and edx, esi
and ecx, ebx
or ecx, edx
push ecx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x34], ebx
push esi
mov dword [ebp - 0x2c], eax
mov ebx, edi
call fcn.0042a3d0
mov esi, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, 1
add ax, word [ebp - 0x14]
jo 0x42abb2
mov dword [ebp - 0x14], eax
jmp 0x42aa04
mov dword [ebp - 0x14], 0x3c
mov ecx, dword [ebp - 0x20]
mov eax, 0x4f
cmp word [ebp - 0x14], ax
push ecx
jg 0x42ab31
call fcn.0042a350
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x5c], eax
push edx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x60], eax
movsx eax, word [ebp - 0x14]
cmp eax, 0x51
jb 0x42aad6
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
movsx eax, word [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x60]
push edx
push eax
call fcn.0042a3a0
mov ecx, dword [ebp + 0x18]
push ecx
push eax
call fcn.0042a3a0
mov edx, ebx
xor edx, edi
xor edx, esi
push edx
push eax
call fcn.0042a3a0
mov dword [ebp - 0x34], ebx
push esi
mov dword [ebp - 0x2c], eax
mov ebx, edi
call fcn.0042a3d0
mov esi, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, 1
add ax, word [ebp - 0x14]
jo 0x42abb2
mov dword [ebp - 0x14], eax
jmp 0x42aaa3
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
push eax
call fcn.0042a3a0
mov ecx, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 0x20]
mov dword [ecx], eax
mov edx, dword [esi]
push edx
call fcn.0042a3a0
mov dword [esi], eax
mov esi, dword [ebp + 0x24]
push edi
mov eax, dword [esi]
push eax
call fcn.0042a3a0
mov dword [esi], eax
mov esi, dword [ebp + 0x28]
push ebx
mov ecx, dword [esi]
push ecx
call fcn.0042a3a0
mov edx, dword [ebp - 0x34]
mov dword [esi], eax
mov esi, dword [ebp + 0x2c]
push edx
mov eax, dword [esi]
push eax
call fcn.0042a3a0
mov edi, dword [ebp + 8]
mov dword [esi], eax
mov esi, dword [ebp - 0x3c]
jmp 0x42a67a
push 0x42ab9f
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x54]
push edx
push 0
mov dword [ebp - 0x5c], ecx
call dword [sym.imp.MSVBVM60.DLL___vbaAryDestruct]
ret
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop
nop
nop
nop
nop
nop