Function at 0x4700a1
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x34c
mov eax, dword [0x4362fc]
xor eax, ebp
mov dword [ebp + 0x6c], eax
mov ecx, dword [ebp + 0x7c]
or dword [ebp - 0x2bc], 0xffffffff
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 0x78]
mov eax, dword [edi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], esi
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
lea edx, [edx + eax*2]
mov dword [ebp - 0x2cc], eax
movzx eax, word [edx]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2b8], esi
mov dword [ebp - 0x2c0], esi
mov dword [ebp - 0x2c8], esi
mov dword [ebp - 0x2d4], esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2c4], edx
cmp ax, si
jne 0x47011e
push 0xfffffffffffffffe
mov dword [ecx + 8], esi
mov dword [ecx], esi
pop eax
jmp 0x47078e
push ebx
movzx ebx, ax
test ebx, ebx
je 0x470428
test esi, esi
je 0x470187
push ebx
push 0x42dacc
call fcn.00482254
pop ecx
pop ecx
test eax, eax
je 0x47040e
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp - 0x2c4]
sub eax, ecx
sar eax, 1
sub eax, esi
cmp dword [ebp - 0x2bc], 0
jne 0x470166
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x470179
push eax
lea eax, [ecx + esi*2]
mov ecx, dword [ebp - 0x2d0]
push eax
add ecx, 0x10
call fcn.0046cd89
xor esi, esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2d4], esi
mov edx, dword [ebp - 0x2c0]
test edx, edx
je 0x4703b5
cmp ebx, 0x3e
jne 0x470265
test byte [ebp - 0x2b8], 0xc0
jne 0x470284
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x2c8]
sar eax, 1
mov dword [ebp - 0x2cc], eax
cmp ecx, 1
jne 0x47020d
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2bc], ecx
jne 0x470253
cmp dword [ebp - 0x2d4], 0x2f
jne 0x470253
cmp dword [ebp - 0x2d8], 0
je 0x4701fe
push dword [ebp - 0x2d8]
push 0x42dabc
call fcn.00482254
pop ecx
pop ecx
test eax, eax
je 0x470253
mov eax, dword [ebp - 0x2d0]
or dword [eax + 0xc], 0x10000
jmp 0x470253
cmp eax, ecx
jle 0x470246
mov ebx, dword [ebp - 0x2c4]
lea eax, [ecx + ecx]
sub ebx, eax
lea eax, [ebx + 2]
mov dword [ebp - 0x2dc], ecx
sub edx, eax
dec dword [ebp - 0x2dc]
je 0x47023f
mov cx, word [eax]
mov bx, word [edx + eax]
inc eax
inc eax
cmp cx, bx
je 0x470227
jmp 0x470246
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2c0], 0
jne 0x47040e
test byte [ebp - 0x2b8], 0x20
je 0x47076f
jmp 0x47040e
cmp ebx, 0x3c
jne 0x470284
cmp dword [ebp - 0x2bc], 2
je 0x470848
cmp dword [ebp - 0x2bc], 0xffffffff
je 0x470848
test byte [ebp - 0x2bc], 1
je 0x470377
test byte [ebp - 0x2b8], 0xc0
je 0x4702dd
cmp ebx, 0x22
jne 0x4702bb
test byte [ebp - 0x2b8], 0x80
je 0x470360
xor dword [ebp - 0x2b8], 0x80
jmp 0x470360
cmp ebx, 0x27
jne 0x470360
test byte [ebp - 0x2b8], 0x40
je 0x470360
xor dword [ebp - 0x2b8], 0x40
jmp 0x470360
cmp ebx, 0x22
jne 0x4702fa
test dword [ebp - 0x2b8], 0x100
je 0x470360
xor dword [ebp - 0x2b8], 0x180
jmp 0x470360
cmp ebx, 0x27
jne 0x470317
test dword [ebp - 0x2b8], 0x100
je 0x470360
xor dword [ebp - 0x2b8], 0x140
jmp 0x470360
cmp ebx, 0x3d
jne 0x470339
cmp dword [ebp - 0x2d4], ebx
je 0x470339
mov eax, 0x100
test dword [ebp - 0x2b8], eax
jne 0x470339
xor dword [ebp - 0x2b8], eax
jmp 0x470360
test dword [ebp - 0x2b8], 0x100
je 0x470360
push ebx
push 0x42d8a4
call fcn.00482254
pop ecx
pop ecx
test eax, eax
jne 0x470360
xor dword [ebp - 0x2b8], 0x100
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], ebx
jmp 0x47040e
test byte [ebp - 0x2bc], 0x40
je 0x47040e
cmp ebx, 0x22
jne 0x47039e
test byte [ebp - 0x2b8], 0x40
jne 0x47040e
xor dword [ebp - 0x2b8], 0x80
jmp 0x47040e
cmp ebx, 0x27
jne 0x47040e
test byte [ebp - 0x2b8], 0x80
jne 0x47040e
xor dword [ebp - 0x2b8], 0x40
jmp 0x47040e
cmp dword [ebp - 0x2b8], 0
je 0x47079f
test byte [ebp - 0x2b8], 0x10
je 0x470482
cmp ebx, 0x3c
je 0x470859
push ebx
push 0x42d8a4
call fcn.00482254
pop ecx
pop ecx
test eax, eax
jne 0x47040e
xor dword [ebp - 0x2b8], 0x10
mov dword [ebp - 0x2bc], 2
mov dword [ebp - 0x2c8], 1
mov dword [ebp - 0x2c0], 0x42dab8
add dword [ebp - 0x2c4], 2
mov eax, dword [ebp - 0x2c4]
movzx ebx, word [eax]
test ebx, ebx
jne 0x47012a
mov edx, eax
sub edx, dword [edi + 0xc]
sar edx, 1
dec edx
cmp dword [ebp - 0x2bc], 4
mov dword [ebp - 0x2cc], edx
je 0x47076f
cmp dword [ebp - 0x2bc], 2
je 0x47076f
test byte [ebp - 0x2b8], 0x20
mov ecx, 0x42dab0
jne 0x470810
mov eax, dword [ebp - 0x2bc]
cmp eax, 0x40
je 0x470810
cmp eax, 1
jne 0x4707e1
mov ecx, 0x42da98
jmp 0x470815
test byte [ebp - 0x2b8], 1
je 0x470585
xor eax, eax
inc eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x60
ja 0x47055f
cmp ebx, 0x40
jbe 0x4704af
cmp ebx, 0x5b
jb 0x47055f
cmp ebx, 0x5f
je 0x47055f
cmp ebx, 0x3a
je 0x47055f
cmp ebx, 0x2f
jne 0x4704df
and dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], eax
jmp 0x470513
cmp ebx, 0x21
jne 0x4704f0
or dword [ebp - 0x2b8], 2
jmp 0x47040e
cmp ebx, 0x3f
jne 0x470524
mov dword [ebp - 0x2c0], 0x42da8c
mov dword [ebp - 0x2c8], 2
mov dword [ebp - 0x2bc], 0x10
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
sar esi, 1
inc esi
jmp 0x47040e
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x2b4]
push 0x42da64
push 0x42da30
push eax
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
call fcn.004828bc
lea eax, [ebp - 0x2b4]
jmp 0x47070f
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2bc], eax
sar esi, 1
jmp 0x47040e
test byte [ebp - 0x2b8], 2
je 0x470639
xor dword [ebp - 0x2b8], 2
cmp ebx, 0x2d
jne 0x4705aa
or dword [ebp - 0x2b8], 4
jmp 0x47040e
cmp ebx, 0x5b
jne 0x4705c4
test byte [ebp - 0x2b8], 0x20
jne 0x4705de
or dword [ebp - 0x2b8], 8
jmp 0x47040e
cmp ebx, 0x44
jne 0x4705de
test byte [ebp - 0x2b8], 0x20
jne 0x4705de
or dword [ebp - 0x2b8], 0x20
jmp 0x47040e
push ebx
push 0x42da28
call fcn.00482254
pop ecx
pop ecx
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
test eax, eax
je 0x470612
mov dword [ebp - 0x2bc], 0x40
jmp 0x47040e
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x1ec]
push 0x42da1c
push 0x42da30
push eax
call fcn.004828bc
lea eax, [ebp - 0x1ec]
jmp 0x47070f
test byte [ebp - 0x2b8], 4
je 0x4706a9
xor dword [ebp - 0x2b8], 4
cmp ebx, 0x2d
jne 0x470671
mov dword [ebp - 0x2c0], 0x42da14
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], 0x20
jmp 0x47040e
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x124]
push 0x42d9fc
push 0x42da30
push eax
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
call fcn.004828bc
lea eax, [ebp - 0x124]
jmp 0x47070f
test byte [ebp - 0x2b8], 8
je 0x47072d
push 8
pop eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x43
jne 0x4706df
mov dword [ebp - 0x2c0], 0x42d9f4
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], eax
jmp 0x47040e
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x5c]
push 0x42dab0
push 0x42da30
push eax
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
call fcn.004828bc
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 0x2d0]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.0046cf9d
or dword [ebp - 0x2bc], 0xffffffff
jmp 0x47040e
test byte [ebp - 0x2b8], 0x20
je 0x47040e
cmp ebx, 0x3c
jne 0x47074b
or dword [ebp - 0x2b8], 1
jmp 0x47040e
cmp ebx, 0x3e
jne 0x47040e
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 0x40
sar eax, 1
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x2d0]
inc eax
mov dword [edi + 8], eax
sub eax, dword [ecx + 4]
pop ebx
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x2bc]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x6c]
pop edi
xor ecx, ebp
pop esi
call fcn.00480f24
add ebp, 0x70
leave
ret
cmp ebx, 0x3c
jne 0x4707b3
mov dword [ebp - 0x2b8], 1
jmp 0x47040e
push ebx
push 0x42d8a4
mov dword [ebp - 0x2bc], 4
call fcn.00482254
pop ecx
pop ecx
test eax, eax
je 0x4703f0
mov dword [ebp - 0x2b8], 0x10
jmp 0x47040e
test eax, eax
jne 0x4707ec
mov ecx, 0x42d9d4
jmp 0x470815
cmp eax, 8
jne 0x4707f8
mov ecx, 0x42d9b8
jmp 0x470815
cmp eax, 0x10
jne 0x470804
mov ecx, 0x42d988
jmp 0x470815
cmp eax, 0x20
jne 0x470815
mov ecx, 0x42d978
jmp 0x470815
mov ecx, 0x42d968
mov esi, dword [ebp - 0x2d0]
push dword [esi + 4]
or dword [ebp - 0x2bc], 0xffffffff
push ecx
lea eax, [ebp - 0x5c]
push 0x42d92c
push eax
call fcn.004828bc
add esp, 0x10
lea eax, [ebp - 0x5c]
push eax
lea ecx, [esi + 0x10]
call fcn.0046cf9d
jmp 0x47076f
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
sar eax, 1
dec eax
jmp 0x470769
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 4
sar eax, 1
dec eax
jmp 0x470769