Function at 0x4257d0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x402046
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x4013d8
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
mov eax, 1
mov dword [ebp - 0x14], eax
mov ecx, 0x46
cmp ax, cx
jg 0x4259e1
movsx eax, ax
lea esi, [eax - 1]
cmp esi, ecx
jb 0x425833
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f094]
lea edx, [ebp - 0x28]
push edx
mov edi, dword [eax + esi*4]
push edi
mov ecx, dword [edi]
call dword [ecx + 0x34]
test eax, eax
fnclex
jge 0x425856
push 0x34
push 0x407984
push edi
push eax
call ebx
cmp word [ebp - 0x28], 0
je 0x4259ca
cmp esi, 0x46
jb 0x42586c
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f094]
lea edx, [ebp - 0x28]
push edx
mov edi, dword [eax + esi*4]
push edi
mov ecx, dword [edi]
call dword [ecx + 0x34]
test eax, eax
fnclex
jge 0x42588f
push 0x34
push 0x407984
push edi
push eax
call ebx
movsx edi, word [ebp - 0x28]
dec edi
cmp edi, 0x46
jb 0x42589f
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f030]
cmp esi, 0x46
mov word [eax + edi*2], 1
jb 0x4258b5
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [0x43f094]
lea eax, [ebp - 0x28]
push eax
mov edi, dword [ecx + esi*4]
push edi
mov edx, dword [edi]
call dword [edx + 0x34]
test eax, eax
fnclex
jge 0x4258d9
push 0x34
push 0x407984
push edi
push eax
call ebx
mov ecx, dword [ebp - 0x28]
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0x24]
push edx
push eax
mov dword [ebp - 0x2c], ecx
call 0x425be0
cmp esi, 0x46
jb 0x4258f7
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [0x43f094]
lea eax, [ebp - 0x30]
push eax
mov edi, dword [ecx + esi*4]
push edi
mov edx, dword [edi]
call dword [edx + 0x34]
test eax, eax
fnclex
jge 0x42591b
push 0x34
push 0x407984
push edi
push eax
call ebx
movsx edi, word [ebp - 0x30]
dec edi
cmp edi, 0x46
jb 0x42592b
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.MSVBVM60.DLL___vbaI2Var]
mov edx, dword [0x43f030]
lea ecx, [ebp - 0x24]
mov word [edx + edi*2 + 0x8c], ax
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVar]
cmp esi, 0x46
jb 0x425957
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f094]
lea edx, [ebp - 0x28]
push edx
mov edi, dword [eax + esi*4]
push edi
mov ecx, dword [edi]
call dword [ecx + 0x34]
test eax, eax
fnclex
jge 0x42597a
push 0x34
push 0x407984
push edi
push eax
call ebx
cmp esi, 0x46
jb 0x425985
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f094]
lea edx, [ebp - 0x2c]
push edx
mov esi, dword [eax + esi*4]
push esi
mov ecx, dword [esi]
call dword [ecx + 0x34]
test eax, eax
fnclex
jge 0x4259a8
push 0x34
push 0x407984
push esi
push eax
call ebx
movsx esi, word [ebp - 0x2c]
dec esi
cmp esi, 0x46
jb 0x4259b8
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [0x43f030]
mov ax, word [ebp - 0x28]
mov word [ecx + esi*2 + 0x118], ax
mov eax, 1
add ax, word [ebp - 0x14]
jo 0x425bd6
mov dword [ebp - 0x14], eax
jmp 0x425815
mov eax, 1
mov dword [ebp - 0x14], eax
mov ecx, 0xf
cmp ax, cx
jg 0x425bb3
movsx eax, ax
lea esi, [eax - 1]
cmp esi, ecx
jb 0x425a07
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [0x43f06c]
lea ecx, [ebp - 0x28]
push ecx
mov edi, dword [edx + esi*4]
push edi
mov eax, dword [edi]
call dword [eax + 0x34]
test eax, eax
fnclex
jge 0x425a2b
push 0x34
push 0x407984
push edi
push eax
call ebx
cmp word [ebp - 0x28], 0
je 0x425ba0
cmp esi, 0xf
jb 0x425a41
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [0x43f06c]
lea ecx, [ebp - 0x28]
push ecx
mov edi, dword [edx + esi*4]
push edi
mov eax, dword [edi]
call dword [eax + 0x34]
test eax, eax
fnclex
jge 0x425a65
push 0x34
push 0x407984
push edi
push eax
call ebx
movsx edi, word [ebp - 0x28]
dec edi
cmp edi, 0x46
jb 0x425a75
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [0x43f030]
cmp esi, 0xf
mov word [edx + edi*2], 2
jb 0x425a8c
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f06c]
lea edx, [ebp - 0x28]
push edx
mov edi, dword [eax + esi*4]
push edi
mov ecx, dword [edi]
call dword [ecx + 0x34]
test eax, eax
fnclex
jge 0x425aaf
push 0x34
push 0x407984
push edi
push eax
call ebx
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x2c]
lea edx, [ebp - 0x24]
push ecx
push edx
mov dword [ebp - 0x2c], eax
call 0x425be0
cmp esi, 0xf
jb 0x425acd
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f06c]
lea edx, [ebp - 0x30]
push edx
mov edi, dword [eax + esi*4]
push edi
mov ecx, dword [edi]
call dword [ecx + 0x34]
test eax, eax
fnclex
jge 0x425af0
push 0x34
push 0x407984
push edi
push eax
call ebx
movsx edi, word [ebp - 0x30]
dec edi
cmp edi, 0x46
jb 0x425b00
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaI2Var]
mov ecx, dword [0x43f030]
mov word [ecx + edi*2 + 0x8c], ax
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVar]
cmp esi, 0xf
jb 0x425b2c
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [0x43f06c]
lea ecx, [ebp - 0x28]
push ecx
mov edi, dword [edx + esi*4]
push edi
mov eax, dword [edi]
call dword [eax + 0x34]
test eax, eax
fnclex
jge 0x425b50
push 0x34
push 0x407984
push edi
push eax
call ebx
cmp esi, 0xf
jb 0x425b5b
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov edx, dword [0x43f06c]
lea ecx, [ebp - 0x2c]
push ecx
mov esi, dword [edx + esi*4]
push esi
mov eax, dword [esi]
call dword [eax + 0x34]
test eax, eax
fnclex
jge 0x425b7f
push 0x34
push 0x407984
push esi
push eax
call ebx
movsx esi, word [ebp - 0x2c]
dec esi
cmp esi, 0x46
jb 0x425b8f
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [0x43f030]
mov dx, word [ebp - 0x28]
mov word [eax + esi*2 + 0x118], dx
mov eax, 1
add ax, word [ebp - 0x14]
jo 0x425bd6
mov dword [ebp - 0x14], eax
jmp 0x4259e9
push 0x425bc5
jmp 0x425bc4
ret
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop
nop
push ebp
mov ebp, esp
sub esp, 0xc
push 0x402046
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
push esi
push edi
mov dword [ebp - 0xc], esp
mov dword [ebp - 8], 0x4013e8
mov ebx, dword [ebp + 0xc]
xor edi, edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], edi
mov ax, word [ebx]
mov dword [ebp - 0x38], edi
cmp ax, word [0x43f044]
jg 0x425c2f
mov dword [ebp - 0x30], 1
jmp 0x425e34
xor ecx, ecx
cmp ax, 0x35
setg cl
xor edx, edx
cmp ax, 0x32
setl dl
or ecx, edx
jne 0x425c51
mov dword [ebp - 0x30], 1
jmp 0x425e34
cmp ax, 0x2e
jne 0x425c63
mov dword [ebp - 0x30], 3
jmp 0x425e34
cmp ax, 0x27
je 0x425e2d
cmp ax, 0x2e
jge 0x425c83
mov eax, 2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
jmp 0x425e3b
cmp ax, 0x2f
jne 0x425c95
mov dword [ebp - 0x30], 3
jmp 0x425e34
cmp ax, 0x30
jne 0x425ca7
mov dword [ebp - 0x30], 5
jmp 0x425e34
cmp ax, 0x3f
jne 0x425cb9
mov dword [ebp - 0x30], 3
jmp 0x425e34
cmp ax, 0x46
jne 0x425ccb
mov dword [ebp - 0x30], 4
jmp 0x425e34
cmp ax, 0x40
jne 0x425ce1
mov eax, 2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
jmp 0x425e3b
cmp ax, 0x3b
jne 0x425cf3
mov dword [ebp - 0x30], 5
jmp 0x425e34
cmp ax, 0x3e
je 0x425e2d
cmp ax, 0x36
je 0x425e2d
mov eax, dword [0x43f094]
lea edx, [ebp - 0x28]
push edx
mov esi, dword [eax + 0xdc]
push esi
mov ecx, dword [esi]
call dword [ecx + 0x3c]
cmp eax, edi
fnclex
jge 0x425d31
push 0x3c
push 0x407984
push esi
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov eax, dword [ebp - 0x28]
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaStrCmp]
push eax
push 0x408868
call edi
mov esi, eax
neg esi
sbb esi, esi
xor ecx, ecx
neg esi
neg esi
cmp word [ebx], 0x38
mov ebx, dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
sete cl
neg ecx
and esi, ecx
lea ecx, [ebp - 0x28]
call ebx
test si, si
jne 0x425e2d
mov edx, dword [0x43f094]
lea ecx, [ebp - 0x28]
push ecx
mov esi, dword [edx + 0xe0]
push esi
mov eax, dword [esi]
call dword [eax + 0x3c]
test eax, eax
fnclex
jge 0x425d98
push 0x3c
push 0x407984
push esi
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov edx, dword [ebp - 0x28]
push edx
push 0x408868
call edi
mov edi, dword [ebp + 0xc]
mov esi, eax
neg esi
sbb esi, esi
xor eax, eax
neg esi
neg esi
cmp word [edi], 0x39
lea ecx, [ebp - 0x28]
sete al
neg eax
and esi, eax
call ebx
test si, si
jne 0x425e2d
mov ax, word [edi]
cmp ax, 0x37
je 0x425e2d
cmp ax, 0x41
jne 0x425de3
mov eax, 2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
jmp 0x425e3b
cmp ax, 0x42
jne 0x425df2
mov dword [ebp - 0x30], 5
jmp 0x425e34
cmp ax, 0x45
jne 0x425e05
mov eax, 2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
jmp 0x425e3b
cmp ax, 0x43
jne 0x425e14
mov dword [ebp - 0x30], 5
jmp 0x425e34
cmp ax, 0x44
jne 0x425e27
mov eax, 2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
jmp 0x425e3b
cmp ax, 0x3d
jne 0x425e47
mov dword [ebp - 0x30], 6
mov dword [ebp - 0x38], 2
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVBVM60.DLL___vbaVarMove]
push 0x425e68
jmp 0x425e67
ret