Function at 0x428890
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x348
mov eax, dword [0x4ad980]
xor eax, esp
mov dword [esp + 0x344], eax
mov eax, dword [ecx + 8]
push ebx
push ebp
push esi
mov esi, edx
xor edx, edx
mov dword [esi + 4], eax
mov dword [esi + 0xc], edx
mov eax, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x24], eax
lea eax, [ebp + eax*2]
movzx ebp, word [eax]
push edi
or ebx, 0xffffffff
xor edi, edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], eax
test bp, bp
jne 0x4288fd
mov dword [esi + 8], edx
mov dword [esi], edx
lea eax, [edx - 2]
jmp 0x428fc4
movzx ebp, bp
test ebp, ebp
je 0x428c93
test edi, edi
je 0x4289e8
push ebp
push 0x495334
call fcn.004662fc
add esp, 8
test eax, eax
je 0x428a65
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
sub esi, dword [eax + 0xc]
sar esi, 1
sub esi, edi
test ebx, ebx
jne 0x428947
lea ecx, [esi + edi - 1]
mov dword [eax], edi
mov dword [eax + 4], ecx
jmp 0x4289da
mov eax, dword [esp + 0x20]
add eax, 0x10
mov eax, dword [eax]
sub eax, 0x10
mov edx, 1
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, esi
or edx, eax
jge 0x428971
mov ecx, dword [esp + 0x20]
push esi
add ecx, 0x10
call fcn.00406850
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
lea ecx, [esi + esi]
push ecx
lea ecx, [eax + edi*2]
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
add eax, 0x10
push ecx
push edx
call fcn.0046be90
add esp, 0xc
mov eax, esi
cmp esi, 0xffffffff
jne 0x4289b4
mov eax, dword [esp + 0x20]
add eax, 0x10
mov eax, dword [eax]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4289bc
push ecx
push eax
call fcn.00465b01
add esp, 8
test eax, eax
jl 0x429076
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, dword [edx - 8]
jg 0x429076
mov dword [edx - 0xc], eax
mov ecx, dword [ecx]
xor edx, edx
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x14], 0
je 0x428c2d
cmp ebp, 0x3e
jne 0x428ad3
test dl, 0xc0
jne 0x428aea
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
sub eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
sar eax, 1
mov dword [esp + 0x28], eax
cmp ecx, 1
jne 0x428a79
mov dword [esp + 0x14], 0
cmp ebx, ecx
jne 0x428ac5
cmp dword [esp + 0x2c], 0x2f
jne 0x428ac5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x428a58
push eax
push 0x495344
call fcn.004662fc
mov edx, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x428ac5
mov eax, dword [esp + 0x20]
or dword [eax + 0xc], 0x10000
jmp 0x428ac5
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x1c], eax
jmp 0x428c80
cmp eax, ecx
jle 0x428c77
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea eax, [ecx + ecx]
sub esi, eax
lea eax, [esi + 2]
mov esi, ecx
mov ecx, dword [esp + 0x14]
sub ecx, eax
lea esp, [esp]
sub esi, 1
je 0x428abd
mov dx, word [eax]
mov bp, word [ecx + eax]
add eax, 2
cmp dx, bp
mov edx, dword [esp + 0x10]
je 0x428aa0
jmp 0x428c77
mov dword [esp + 0x14], 0
test dl, 0x20
je 0x428faa
jmp 0x428c77
cmp ebp, 0x3c
jne 0x428aea
cmp ebx, 2
je 0x429080
cmp ebx, 0xffffffff
je 0x429080
test bl, 1
je 0x428c00
add dword [eax], eax
invalid
test dl, 0xc0
je 0x428b4a
cmp ebp, 0x22
jne 0x428b20
test dl, dl
jns 0x428bf2
mov eax, dword [esp + 0x2c]
xor edx, 0x80
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
jmp 0x428c77
cmp ebp, 0x27
jne 0x428bf2
test dl, 0x40
je 0x428bf2
mov eax, dword [esp + 0x2c]
xor edx, 0x40
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
jmp 0x428c77
cmp ebp, 0x22
jne 0x428b76
test edx, 0x100
je 0x428bf2
mov eax, dword [esp + 0x2c]
xor edx, 0x180
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
jmp 0x428c77
cmp ebp, 0x27
jne 0x428b9e
test edx, 0x100
je 0x428bf2
mov eax, dword [esp + 0x2c]
xor edx, 0x140
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
jmp 0x428c77
cmp ebp, 0x3d
jne 0x428bcc
cmp dword [esp + 0x2c], ebp
je 0x428bcc
test edx, 0x100
jne 0x428bd4
mov eax, dword [esp + 0x2c]
xor edx, 0x100
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
jmp 0x428c77
test edx, 0x100
je 0x428bf2
push ebp
push 0x495228
call fcn.004662fc
add esp, 8
test eax, eax
jne 0x428bee
xor dword [esp + 0x10], 0x100
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
jmp 0x428c77
test bl, 0x40
je 0x428c77
cmp ebp, 0x22
jne 0x428c1b
test dl, 0x40
jne 0x428c77
xor edx, 0x80
mov dword [esp + 0x10], edx
jmp 0x428c77
cmp ebp, 0x27
jne 0x428c77
test dl, dl
js 0x428c77
xor edx, 0x40
mov dword [esp + 0x10], edx
jmp 0x428c77
test edx, edx
je 0x428fdd
test dl, 0x10
je 0x428cd9
cmp ebp, 0x3c
je 0x429093
push ebp
push 0x495228
call fcn.004662fc
add esp, 8
test eax, eax
jne 0x428c73
xor dword [esp + 0x10], 0x10
mov ebx, 2
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0x495354
mov edx, dword [esp + 0x10]
add dword [esp + 0x1c], 2
mov eax, dword [esp + 0x1c]
movzx ebp, word [eax]
test ebp, ebp
jne 0x428908
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
sub eax, dword [ecx + 0xc]
sar eax, 1
dec eax
mov dword [esp + 0x28], eax
cmp ebx, 4
je 0x428faa
cmp ebx, 2
je 0x428faa
mov eax, 0x49524c
test dl, 0x20
jne 0x429046
cmp ebx, 0x40
je 0x429046
cmp ebx, 1
jne 0x429017
mov eax, 0x495264
jmp 0x42904b
test dl, 1
je 0x428de0
mov eax, 1
xor edx, eax
mov dword [esp + 0x10], edx
cmp ebp, 0x60
ja 0x428dc0
cmp ebp, 0x40
jbe 0x428d04
cmp ebp, 0x5b
jb 0x428dc0
cmp ebp, 0x5f
je 0x428dc0
cmp ebp, 0x3a
je 0x428dc0
cmp ebp, 0x2f
jne 0x428d3d
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
sub edi, dword [ecx + 0xc]
xor ebx, ebx
sar edi, 1
mov dword [esp + 0x14], 0x495358
mov dword [esp + 0x18], eax
add edi, eax
jmp 0x428c77
cmp ebp, 0x21
jne 0x428d4e
or edx, 2
mov dword [esp + 0x10], edx
jmp 0x428c77
cmp ebp, 0x3f
jne 0x428d7a
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
sub edi, dword [ecx + 0xc]
mov dword [esp + 0x14], 0x495004
sar edi, 1
mov dword [esp + 0x18], 2
lea ebx, [ebp - 0x2f]
add edi, eax
jmp 0x428c77
mov edx, dword [esp + 0x28]
push edx
push 0x49535c
push 0x495384
lea edx, [esp + 0x108]
mov dword [esp + 0x20], 0x495358
mov dword [esp + 0x24], eax
call fcn.004119c0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
lea eax, [esp + 0xfc]
push eax
add ecx, 0x10
call fcn.00406a10
or ebx, 0xffffffff
jmp 0x428c73
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
sub edi, dword [ecx + 0xc]
mov dword [esp + 0x14], 0x495358
mov dword [esp + 0x18], eax
mov ebx, eax
sar edi, 1
jmp 0x428c77
test dl, 2
je 0x428e93
xor edx, 2
mov dword [esp + 0x10], edx
cmp ebp, 0x2d
jne 0x428e01
or edx, 4
mov dword [esp + 0x10], edx
jmp 0x428c77
cmp ebp, 0x5b
jne 0x428e17
test dl, 0x20
jne 0x428e2d
or edx, 8
mov dword [esp + 0x10], edx
jmp 0x428c77
cmp ebp, 0x44
jne 0x428e2d
test dl, 0x20
jne 0x428e2d
or edx, 0x20
mov dword [esp + 0x10], edx
jmp 0x428c77
push ebp
push str.40162cent58722minus
call fcn.004662fc
add esp, 8
mov dword [esp + 0x14], 0x495358
mov dword [esp + 0x18], 1
test eax, eax
je 0x428e59
mov ebx, 0x40
jmp 0x428c73
mov edx, dword [esp + 0x28]
push edx
push 0x4953c0
push 0x495384
lea edx, [esp + 0x298]
call fcn.004119c0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
lea eax, [esp + 0x28c]
push eax
add ecx, 0x10
call fcn.00406a10
or ebx, 0xffffffff
jmp 0x428c73
test dl, 4
je 0x428f06
xor edx, 4
mov dword [esp + 0x10], edx
cmp ebp, 0x2d
jne 0x428ebc
mov dword [esp + 0x14], 0x4953cc
mov dword [esp + 0x18], 3
lea ebx, [ebp - 0xd]
jmp 0x428c77
mov ecx, dword [esp + 0x28]
push ecx
push 0x4953d4
push 0x495384
lea edx, [esp + 0x1d0]
mov dword [esp + 0x20], 0x495358
mov dword [esp + 0x24], 1
call fcn.004119c0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
lea edx, [esp + 0x1c4]
push edx
add ecx, 0x10
call fcn.00406a10
or ebx, 0xffffffff
jmp 0x428c73
test dl, 8
je 0x428f73
xor edx, 8
mov dword [esp + 0x10], edx
cmp ebp, 0x43
jne 0x428f2f
mov dword [esp + 0x14], 0x4953ec
mov dword [esp + 0x18], 3
lea ebx, [ebp - 0x3b]
jmp 0x428c77
mov eax, dword [esp + 0x28]
push eax
push 0x49524c
push 0x495384
lea edx, [esp + 0x40]
mov dword [esp + 0x20], 0x495358
mov dword [esp + 0x24], 1
call fcn.004119c0
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x24]
add ecx, 0x10
call fcn.00406a10
or ebx, 0xffffffff
jmp 0x428c73
test dl, 0x20
je 0x428c77
cmp ebp, 0x3c
jne 0x428f8d
or edx, 1
mov dword [esp + 0x10], edx
jmp 0x428c77
cmp ebp, 0x3e
jne 0x428c77
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
sub eax, dword [ecx + 0xc]
lea ebx, [ebp + 2]
sar eax, 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
inc eax
mov dword [edx + 8], eax
sub eax, dword [ecx + 4]
mov dword [ecx], ebx
mov dword [ecx + 8], eax
mov eax, ebx
mov ecx, dword [esp + 0x354]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004644a2
add esp, 0x348
ret
cmp ebp, 0x3c
jne 0x428fef
mov dword [esp + 0x10], 1
jmp 0x428c73
push ebp
push 0x495228
mov ebx, 4
call fcn.004662fc
add esp, 8
test eax, eax
je 0x428c5e
mov dword [esp + 0x10], 0x10
jmp 0x428c73
test ebx, ebx
jne 0x429022
mov eax, 0x49527c
jmp 0x42904b
cmp ebx, 8
jne 0x42902e
mov eax, 0x49529c
jmp 0x42904b
cmp ebx, 0x10
jne 0x42903a
mov eax, 0x4952b8
jmp 0x42904b
cmp ebx, 0x20
jne 0x42904b
mov eax, 0x4952e8
jmp 0x42904b
mov eax, 0x495254
mov edx, dword [esi + 4]
push edx
push eax
push 0x4952f8
lea edx, [esp + 0x40]
or ebx, 0xffffffff
call fcn.004119c0
add esp, 0xc
lea eax, [esp + 0x34]
push eax
lea ecx, [esi + 0x10]
call fcn.00406a10
jmp 0x428faa
push 0x80070057
call fcn.004068d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
sub eax, dword [ecx + 0xc]
sar eax, 1
dec eax
jmp 0x428fa6
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
sub eax, dword [edx + 0xc]
mov ebx, 4
sar eax, 1
dec eax
jmp 0x428fa6