Function at 0x490860
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x405216
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x402e50
mov ecx, 6
xor eax, eax
lea edi, [ebp - 0x38]
xor esi, esi
rep stosd dword es:[edi], eax
mov eax, dword [0x538c50]
mov dword [ebp - 0x18], esi
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*8]
shl edx, 6
add edx, eax
lea ecx, [eax + edx*4]
mov edx, dword [0x5390b8]
lea ebx, [edx + ecx*4]
mov cl, byte [ebp + 8]
cmp cl, 1
mov dword [ebp - 0x3c], ebx
je 0x490c82
cmp cl, 2
je 0x490c82
cmp cl, 3
je 0x490c82
mov edx, 4
cmp cl, dl
je 0x490c82
cmp cl, 5
jne 0x490942
mov ax, word [ebx + 0x214]
cmp ax, dx
jle 0x4908ff
lea esi, [eax - 4]
mov word [ebx + 0x214], dx
mov ax, word [ebx + 0x218]
cmp ax, dx
jle 0x490916
lea esi, [esi + eax - 4]
mov word [ebx + 0x218], dx
mov ax, word [ebx + 0x216]
cmp ax, dx
jle 0x49092d
lea esi, [esi + eax - 4]
mov word [ebx + 0x216], dx
mov ax, word [ebx + 0x21a]
cmp ax, dx
jle 0x490c57
jmp 0x490c4c
cmp cl, 6
jne 0x4909c4
mov byte [ebp - 0x50], dl
mov cl, 1
mov al, byte [ebp - 0x50]
mov byte [ebp + 8], cl
cmp cl, al
ja 0x490d56
xor ax, ax
mov al, cl
lea eax, [eax + eax*4]
movsx ecx, ax
add eax, 0xfffffffc
mov dword [ebp - 0x70], ecx
movsx edi, ax
cmp edi, dword [ebp - 0x70]
jg 0x4909aa
lea edx, [edi + edi*2]
lea eax, [ebx + edx*8]
mov dl, byte [eax + 0xc]
test dl, dl
lea ecx, [eax + 0xc]
jbe 0x49098a
mov dword [ebp - 0x18], 0xffffffff
movzx ax, byte [eax + 0x20]
lea edx, [ebp - 0x38]
add esi, eax
push edx
push ecx
push 0x41e890
call dword [sym.imp.MSVBVM60.DLL___vbaRecAssign]
mov eax, 1
add edi, eax
jmp 0x49096e
mov eax, dword [ebp + 8]
mov cl, byte [ebp + 8]
and eax, 0xff
add word [ebx + eax*2 + 0x18], si
lea eax, [ebx + eax*2 + 0x18]
mov al, 1
add cl, al
jmp 0x49094c
cmp cl, 7
jne 0x490a62
mov byte [ebp - 0x58], dl
mov cl, 1
mov al, byte [ebp - 0x58]
mov byte [ebp + 8], cl
cmp cl, al
ja 0x490d56
xor ax, ax
mov al, cl
lea eax, [eax + eax*4]
movsx ecx, ax
add eax, 0xfffffffc
mov dword [ebp - 0x78], ecx
movsx eax, ax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x78]
jg 0x490a45
lea edx, [eax + eax*2]
lea edi, [ebx + edx*8]
mov al, byte [edi + 0xc]
lea ebx, [edi + 0xc]
push eax
call fcn.00490670
test ax, ax
je 0x490a31
movzx cx, byte [edi + 0x20]
lea edx, [ebp - 0x38]
add esi, ecx
push edx
push ebx
push 0x41e890
call dword [sym.imp.MSVBVM60.DLL___vbaRecAssign]
mov dword [ebp - 0x18], 0xffffffff
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x3c]
mov eax, 1
add ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, ecx
jmp 0x4909f7
mov eax, dword [ebp + 8]
mov cl, byte [ebp + 8]
and eax, 0xff
add word [ebx + eax*2 + 0x18], si
lea eax, [ebx + eax*2 + 0x18]
mov al, 1
add cl, al
jmp 0x4909d2
cmp cl, 8
jne 0x490b5c
mov byte [ebp - 0x60], dl
mov dl, 1
mov cl, byte [ebp - 0x60]
mov byte [ebp + 8], dl
cmp dl, cl
ja 0x490d56
xor cx, cx
mov cl, dl
lea ecx, [ecx + ecx*4]
movsx edx, cx
add ecx, 0xfffffffc
mov dword [ebp - 0x80], edx
movsx ecx, cx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x80]
jg 0x490b30
lea edx, [eax + eax*4]
lea ecx, [ecx + ecx*2]
lea edx, [eax + edx*8]
shl edx, 6
add edx, eax
lea eax, [eax + edx*4]
mov edx, dword [0x5390b8]
lea ecx, [edx + ecx*8]
mov bl, byte [ecx + eax*4 + 0xc]
lea edi, [ecx + eax*4 + 0xc]
push ebx
call fcn.00490670
test ax, ax
je 0x490b16
mov al, byte [edi + 0x14]
test al, al
jbe 0x490b16
xor dx, dx
mov byte [edi + 0x14], 0
mov dl, al
xor ax, ax
mov al, bl
add esi, edx
mov edx, dword [0x539784]
add eax, 0x64
movsx ecx, ax
lea eax, [ecx*4 + 0x18]
mov ecx, dword [0x5397a0]
mov dword [eax + edx], 0
mov edx, dword [0x5397bc]
mov dword [eax + ecx], 0
mov dword [eax + edx], 0
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x3c]
mov eax, 1
add ecx, eax
mov eax, dword [0x538c50]
mov dword [ebp - 0x14], ecx
jmp 0x490a95
test si, si
jle 0x490b3c
mov dword [ebp - 0x18], 0xffffffff
mov ecx, dword [ebp + 8]
mov dl, byte [ebp + 8]
and ecx, 0xff
add word [ebx + ecx*2 + 0x18], si
lea ecx, [ebx + ecx*2 + 0x18]
mov cl, 1
xor esi, esi
add dl, cl
jmp 0x490a70
cmp cl, 0x19
je 0x490c69
cmp cl, 0x32
je 0x490c69
cmp cl, 0x4b
je 0x490c69
cmp cl, 0x64
je 0x490c69
cmp cl, 0xc9
jne 0x490bad
mov cl, byte [eax + 0x5395db]
test cl, cl
jne 0x490d56
push 0x3cf5c28f
push 0xffffffffffffffff
push 0
push 0
push 0x425a74
call fcn.0046dd50
jmp 0x490d56
cmp cl, 0xca
jne 0x490bd1
movzx dx, byte [ebx + 0x14]
mov ax, word [0x538dd4]
cmp dx, ax
jge 0x490d56
push eax
call fcn.00487380
jmp 0x490d4f
cmp cl, 0xcb
jne 0x490be9
call fcn.00490690
test ax, ax
je 0x490d56
jmp 0x490d4f
cmp cl, 0xcc
jne 0x490d56
cmp byte [ebx + 0x14], 0x15
jae 0x490d56
mov ax, word [ebx + 0x214]
cmp ax, dx
jle 0x490c12
lea esi, [eax - 4]
mov word [ebx + 0x214], dx
mov ax, word [ebx + 0x218]
cmp ax, dx
jle 0x490c29
lea esi, [esi + eax - 4]
mov word [ebx + 0x218], dx
mov ax, word [ebx + 0x216]
cmp ax, dx
jle 0x490c40
lea esi, [esi + eax - 4]
mov word [ebx + 0x216], dx
mov ax, word [ebx + 0x21a]
cmp ax, dx
jle 0x490c57
lea esi, [esi + eax - 4]
mov word [ebx + 0x21a], dx
add word [ebx + 0x18], si
test si, si
jle 0x490d56
jmp 0x490d4f
cmp byte [ebx + 0x14], cl
jae 0x490d56
xor ax, ax
mov al, cl
push eax
call fcn.00487380
jmp 0x490d4f
movzx cx, cl
lea ecx, [ecx + ecx*4]
movsx edx, cx
add ecx, 0xfffffffc
mov dword [ebp - 0x68], edx
movsx ecx, cx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x68]
jg 0x490d39
lea edx, [eax + eax*4]
lea ecx, [ecx + ecx*2]
lea edx, [eax + edx*8]
shl edx, 6
add edx, eax
lea eax, [eax + edx*4]
mov edx, dword [0x5390b8]
lea ecx, [edx + ecx*8]
lea edi, [ecx + eax*4 + 0xc]
mov al, byte [ecx + eax*4 + 0xc]
push eax
mov byte [ebp - 0x88], al
call fcn.00490670
test ax, ax
jne 0x490d22
mov al, byte [edi + 0x14]
test al, al
jbe 0x490d22
xor dx, dx
mov byte [edi + 0x14], 0
mov dl, al
movzx ax, byte [ebp - 0x88]
add esi, edx
mov edx, dword [0x539784]
add eax, 0x64
movsx ecx, ax
lea eax, [ecx*4 + 0x18]
mov ecx, dword [0x5397a0]
mov dword [eax + edx], 0
mov edx, dword [0x5397bc]
mov dword [eax + ecx], 0
mov dword [eax + edx], 0
mov ecx, dword [ebp - 0x14]
mov eax, 1
add ecx, eax
mov eax, dword [0x538c50]
mov dword [ebp - 0x14], ecx
jmp 0x490c98
mov eax, dword [ebp + 8]
and eax, 0xff
add word [ebx + eax*2 + 0x18], si
lea ebx, [ebx + eax*2 + 0x18]
test si, si
jle 0x490d56
mov dword [ebp - 0x18], 0xffffffff
push 0
call fcn.0048cbd0
wait
push 0x490d73
lea ecx, [ebp - 0x38]
push ecx
push 0x41e890
call dword [sym.imp.MSVBVM60.DLL___vbaRecDestruct]
ret