Function at 0x4376bd
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
push ebp
mov ebp, ecx
push esi
mov esi, edx
inc dword [ebp + 0x338]
mov eax, dword [ebp + 0x338]
cmp eax, dword [ebp + 0x33c]
jge 0x437b3a
push ebx
push edi
xor eax, eax
mov edi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp]
mov edx, dword [edi]
mov ecx, dword [edi + 0xc]
cmp edx, 0x2e
jg 0x4377d5
je 0x4377cb
cmp edx, 0xffffffff
je 0x4377c4
cmp edx, 0x24
je 0x4377ba
cmp edx, 0x28
je 0x437777
cmp edx, 0x29
je 0x43776d
cmp edx, 0x2a
je 0x437746
cmp edx, 0x2b
jne 0x437807
or dword [esi + 0x10], 0xffffffff
xor eax, eax
inc eax
mov dword [esi + 0xc], eax
cmp ecx, 0x3f
jne 0x437b19
and dword [esi + 4], 0
jmp 0x437b12
or dword [esi + 0x10], 0xffffffff
xor edi, edi
mov dword [esi + 0xc], edi
cmp ecx, 0x3f
jne 0x437761
mov ebx, 0x1802
mov dword [esi + 4], edi
jmp 0x437b21
mov dword [esi + 4], 1
jmp 0x437b1c
mov ebx, 0xc16
jmp 0x437b21
cmp ecx, 0x3f
jne 0x4377b0
cmp dword [edi + 0x18], 0x3d
jne 0x43778c
mov ebx, 0x2407
jmp 0x437b21
cmp dword [edi + 0x18], 0x21
jne 0x43779c
mov ebx, 0x2408
jmp 0x437b21
cmp dword [edi + 0x18], 0x3a
jne 0x437b54
mov ebx, 0x2413
jmp 0x437b21
mov ebx, 0xc12
jmp 0x437b21
mov ebx, 0xc04
jmp 0x437b21
xor ebx, ebx
jmp 0x437b21
mov ebx, 0xc09
jmp 0x437b21
mov eax, edx
sub eax, 0x3f
je 0x437aff
sub eax, 0x1c
je 0x437aed
sub eax, 1
je 0x437940
push 2
pop ebx
sub eax, ebx
je 0x437936
sub eax, 0x1d
je 0x43781e
sub eax, 1
je 0x437814
mov ebx, 0xc0a
mov dword [esi + 8], edx
jmp 0x437b21
mov ebx, 0xc01
jmp 0x437b21
mov ecx, dword [ebp]
xor edi, edi
or dword [esp + 0x18], 0xffffffff
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edi
push 0xc
pop edx
mov ecx, ebp
call fcn.00436895
mov edx, dword [ebp]
mov ecx, dword [edx]
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x43787c
inc dword [esp + 0x14]
cmp ecx, 0xff
ja 0x43786c
movsx ecx, byte [ecx + 0x69aab0]
test ecx, ecx
jns 0x43786f
or ecx, 0xffffffff
imul eax, dword [esp + 0x10], 0xa
add eax, ecx
mov dword [esp + 0x10], eax
jmp 0x43783e
cmp ecx, 0x2c
jne 0x4378bc
mov eax, dword [esp + 0x14]
cmp eax, 9
jg 0x43791a
cmp dword [esp + 0x18], 0xffffffff
jne 0x43791a
cmp dword [edx + 0xc], 0x7d
je 0x4378a9
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
jmp 0x437836
test eax, eax
je 0x43791a
mov eax, dword [esp + 0x10]
or dword [esi + 0x10], 0xffffffff
mov dword [esi + 0xc], eax
push 0x18
jmp 0x4378ec
cmp ecx, 0x7d
jne 0x43791a
mov eax, dword [esp + 0x14]
cmp eax, 9
jg 0x43791a
test eax, eax
je 0x43791a
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x4378e0
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
jmp 0x4378e7
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
push 0xc
pop edx
mov ecx, ebp
call fcn.00436895
mov eax, dword [ebp]
cmp dword [eax], 0x3f
jne 0x43790e
push 0xc
pop edx
mov ecx, ebp
mov dword [esi + 4], edi
call fcn.00436895
jmp 0x437b21
mov dword [esi + 4], 1
jmp 0x437b21
lea edx, [esp + 0x1c]
mov ecx, ebp
call fcn.004369e8
mov ebx, 0xc0a
mov dword [esi + 8], 0x7b
jmp 0x437b21
mov ebx, 0xc03
jmp 0x437b21
mov ebx, 0x180a
cmp ecx, 0x62
jne 0x437952
add ebx, 0xfffffffb
jmp 0x437b21
cmp ecx, 0x42
jne 0x437961
mov ebx, 0x1806
jmp 0x437b21
cmp ecx, 0x66
jne 0x437972
mov dword [esi + 8], 0xc
jmp 0x437b21
cmp ecx, 0x6e
jne 0x437983
mov dword [esi + 8], 0xa
jmp 0x437b21
cmp ecx, 0x74
jne 0x437994
mov dword [esi + 8], 9
jmp 0x437b21
cmp ecx, 0x72
jne 0x4379a5
mov dword [esi + 8], 0xd
jmp 0x437b21
cmp ecx, 0x76
jne 0x4379b6
mov dword [esi + 8], 0xb
jmp 0x437b21
cmp ecx, 0x63
jne 0x4379ee
mov ecx, dword [edi + 0x18]
cmp ecx, 0x61
jl 0x4379c8
cmp ecx, 0x7a
jle 0x4379d4
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x437ab7
and ecx, 0x8000001f
jns 0x4379e1
dec ecx
or ecx, 0xffffffe0
inc ecx
mov dword [esi + 8], ecx
mov ebx, 0x240a
jmp 0x437b21
cmp ecx, 0x78
je 0x437adc
cmp ecx, 0x75
je 0x437adc
cmp ecx, 0x64
jne 0x437a0f
mov ebx, 0x180b
jmp 0x437b21
cmp ecx, 0x44
jne 0x437a1e
mov ebx, 0x180c
jmp 0x437b21
cmp ecx, 0x73
jne 0x437a2d
mov ebx, 0x180d
jmp 0x437b21
cmp ecx, 0x53
jne 0x437a3c
mov ebx, 0x180e
jmp 0x437b21
cmp ecx, 0x77
jne 0x437a4b
mov ebx, 0x180f
jmp 0x437b21
cmp ecx, 0x57
jne 0x437a5a
mov ebx, 0x1810
jmp 0x437b21
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x437ad3
cmp ecx, 0x30
jne 0x437a7b
cmp dword [edi + 0x18], ecx
jl 0x437a72
cmp dword [edi + 0x18], 0x39
jle 0x437ab7
and dword [esi + 8], 0
jmp 0x437b21
xor edi, edi
mov ebx, edi
push 0xc
pop edx
mov ecx, ebp
call fcn.00436895
mov eax, dword [ebp]
mov ecx, dword [eax]
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x437acb
cmp ecx, 0xff
ja 0x437aa9
movsx eax, byte [ecx + 0x69aab0]
test eax, eax
jns 0x437aac
or eax, 0xffffffff
imul edi, edi, 0xa
add edi, eax
inc ebx
cmp ebx, 9
jl 0x437a7f
push 0x6b7d88
push 0x5000875
mov edx, 0x6b7da0
jmp 0x437b63
push 0x11
pop ebx
mov dword [esi + 8], edi
jmp 0x437b21
test ecx, ecx
js 0x437ab7
mov dword [esi + 8], ecx
jmp 0x437b21
xor edx, edx
mov ecx, ebp
call fcn.00436a36
push 0xa
mov dword [esi + 8], eax
pop ebx
jmp 0x437b21
cmp ecx, 0x5e
mov ebx, 0x1815
mov eax, 0xc14
cmovne ebx, eax
jmp 0x437b21
xor eax, eax
xor edi, edi
inc eax
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
cmp ecx, 0x3f
jne 0x437b19
mov dword [esi + 4], edi
mov ebx, 0x1802
jmp 0x437b21
mov dword [esi + 4], eax
mov ebx, 0xc02
mov edx, ebx
mov ecx, ebp
shr edx, 8
call fcn.00436895
pop edi
movzx eax, bl
pop ebx
mov dword [esi], eax
pop esi
pop ebp
add esp, 0x14
ret
mov ecx, dword [ebp + 0x304]
mov edx, 0x6b7d7c
push str.token_limit
push 0x871
call fcn.0040cf4d
push str.invalid_regexp_group
push 0x5000879
mov edx, 0x6b7dc4
mov ecx, dword [ebp + 0x304]
call fcn.0040ceb4
int3