Function at 0x4039c0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x28
or eax, 0xffffffff
mov word [esp + 0x10], ax
push ebp
xor ecx, ecx
mov eax, 0x65
xor ebp, ebp
mov dword [esp + 0x20], eax
mov edx, 2
mul edx
seto cl
push esi
push edi
mov dword [esp + 0x24], ebp
neg ecx
or ecx, eax
push ecx
call fcn.004120ca
add esp, 4
xor ecx, ecx
push 4
mov dword [esp + 0x24], eax
mov word [eax], cx
call fcn.004120ca
add esp, 4
test eax, eax
je 0x42bda5
mov dword [eax], 1
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x3c]
cmp dword [edx + 8], ebp
jbe 0x403a53
xor edi, edi
mov eax, edx
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x403a4d
movzx eax, word [esi + 8]
cmp ax, 0x3f
jle 0x403b1d
push esi
call fcn.00411c9f
mov eax, dword [esp + 0x40]
add esp, 4
inc edi
cmp edi, dword [eax + 8]
jb 0x403a28
mov edx, dword [esp + 0x3c]
mov dword [edx + 8], ebp
cmp word [ebx], bp
je 0x403c5f
jmp 0x403a70
movzx eax, word [ebx + ebp*2]
cmp ax, 0x20
je 0x403b75
cmp ax, 9
je 0x403b75
movzx eax, word [ebx + ebp*2]
test ax, ax
je 0x403c4a
movzx esi, ax
mov dword [esp + 0x10], ebp
mov word [esp + 0x1e], bp
cmp si, 0x30
jae 0x403b7b
cmp si, 0x2e
je 0x403b85
cmp si, 0x41
jae 0x403ce9
cmp si, 0x61
jae 0x403f53
cmp si, 0x5f
je 0x403cf3
movzx eax, si
cmp eax, 0x24
je 0x403cae
cmp eax, 0x3d
je 0x403d2a
cmp eax, 0x28
je 0x403d67
cmp eax, 0x29
je 0x403d49
cmp eax, 0x22
je 0x403d85
sub eax, 0x1a
cmp eax, 0x44
ja 0x42bff6
movzx ecx, byte [eax + 0x403418]
jmp dword [ecx*4 + 0x4033dc]
cmp ax, 0x30
jl 0x403a40
mov ecx, dword [esi]
test ecx, ecx
je 0x403a40
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x10], ecx
cmp dword [edx], ebp
je 0x42bdae
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00411c9f
add esp, 4
jmp 0x403a40
inc ebp
jmp 0x403a70
cmp si, 0x39
ja 0x403aab
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebx
lea eax, [esp + 0x1c]
call fcn.004041c0
cmp al, 1
jne 0x42bdd2
mov edi, dword [esp + 0x3c]
lea edx, [esp + 0x14]
push edx
call fcn.004038b0
mov ebp, dword [esp + 0x10]
jmp 0x403c3f
cmp ax, 0x30
jae 0x403e2a
cmp ax, 0x5f
je 0x403cdc
cmp dword [esp + 0x24], 0
je 0x42bf81
lea eax, [esp + 0x20]
call fcn.004036d0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
push esi
push edi
call dword [0x481640]
cmp word [esp + 0x1c], 0x30
jge 0x403e7e
mov edx, 0x33
push 0x10
mov word [esp + 0x20], dx
call fcn.004120ca
add esp, 4
test eax, eax
je 0x42bf74
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov edi, dword [esp + 0x40]
call fcn.004038b0
cmp word [ebx + ebp*2], 0
jne 0x403a70
mov ax, word [esp + 0x1c]
cmp ax, 0x30
jl 0x403c5f
cmp ax, 0x3f
jle 0x403e5d
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
mov eax, 0x7f
push ecx
mov word [esp + 0x20], ax
mov dword [esp + 0x18], 0
mov word [esp + 0x22], bp
call fcn.004038b0
mov esi, dword [esp + 0x2c]
add dword [esi], 0xffffffff
jne 0x403ca3
mov edx, dword [esp + 0x20]
push edx
call fcn.00411c9f
add esp, 4
push esi
call fcn.00411c9f
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x28
ret 8
lea esi, [esp + 0x20]
inc ebp
call fcn.00404360
movzx eax, word [ebx + ebp*2]
cmp ax, 0x5a
ja 0x403cc8
cmp ax, 0x41
jae 0x403cdc
cmp ax, 0x61
jb 0x403bb8
cmp ax, 0x7a
ja 0x403bb8
push eax
lea eax, [esp + 0x24]
call fcn.00404060
inc ebp
jmp 0x403cb8
cmp si, 0x5a
ja 0x403abf
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
mov ecx, ebx
call fcn.00403760
cmp dword [esp + 0x14], 0xffffffff
je 0x42bfaf
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x14]
push eax
call fcn.004038b0
mov ebp, dword [esp + 0x10]
jmp 0x403c3f
inc ebp
cmp word [ebx + ebp*2], 0x3d
lea esi, [esp + 0x14]
je 0x42bf4a
mov edi, 0x41
call fcn.004036f0
jmp 0x403c31
mov edi, 0x48
lea esi, [esp + 0x14]
call fcn.004036f0
mov edi, dword [esp + 0x3c]
push esi
call fcn.004038b0
inc ebp
jmp 0x403c3f
mov edi, 0x47
lea esi, [esp + 0x14]
call fcn.004036f0
mov edi, dword [esp + 0x3c]
push esi
call fcn.004038b0
inc ebp
jmp 0x403c3f
mov edx, dword [esp + 0x38]
push edx
lea eax, [esp + 0x24]
lea edi, [esp + 0x14]
call fcn.00404120
lea esi, [esp + 0x14]
test eax, eax
jne 0x42c03b
lea edi, [eax + 0x36]
call fcn.004036f0
lea esi, [esp + 0x20]
lea edi, [esp + 0x14]
call fcn.00403240
push edi
mov edi, dword [esp + 0x40]
call fcn.004038b0
mov ebp, dword [esp + 0x10]
jmp 0x403c3f
cmp ax, 0x39
jbe 0x403cdc
jmp 0x403bc2
mov esi, dword [esp + 0x14]
test esi, esi
je 0x403c5f
mov ecx, esi
call fcn.00403210
push esi
call fcn.00411c9f
add esp, 4
jmp 0x403c5f
cmp word [esp + 0x1c], 0x3f
jg 0x403bfc
jmp 0x42bf5a
cmp si, 0x7a
jbe 0x403cf3
jmp 0x403ac9
mov dword [esp + 0x2c], ebp
jmp 0x403a1b
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push ecx
call fcn.00411c9f
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
add esp, 4
push eax
call fcn.00411c9f
add esp, 4
jmp 0x403b45
mov ebp, dword [esp + 0x10]
cmp si, 0x2e
jne 0x403ab5
lea esi, [esp + 0x20]
inc ebp
call fcn.00404360
movzx eax, word [ebx + ebp*2]
cmp ax, 0x41
jb 0x42be02
cmp ax, 0x5a
jbe 0x42be5f
cmp ax, 0x61
jb 0x42be16
cmp ax, 0x7a
jbe 0x42be5f
cmp ax, 0x30
jb 0x42be2a
cmp ax, 0x39
jbe 0x42be5f
cmp ax, 0x5f
je 0x42be5f
cmp dword [esp + 0x24], 0
je 0x42bf81
mov edi, 0x35
lea esi, [esp + 0x14]
call fcn.004036f0
lea esi, [esp + 0x20]
lea edi, [esp + 0x14]
call fcn.00403240
jmp 0x403c31
push eax
lea eax, [esp + 0x24]
call fcn.00404060
inc ebp
jmp 0x42bdea
mov edi, 0x50
call fcn.004036f0
inc ebp
jmp 0x403c31
cmp dword [esp + 0x14], 0
je 0x403bfc
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00443775
jmp 0x403bfc
mov dword [esp + 0x14], 0
jmp 0x403c31
mov ecx, dword [esp + 0x38]
dec ebp
push ebp
push 0x138b
push ecx
call fcn.0046110a
lea ecx, [esp + 0x20]
call fcn.00403210
lea edx, [esp + 0x14]
push edx
call fcn.0044c106
mov eax, 1
jmp 0x403ca5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
push eax
push 0x138c
push ecx
call fcn.0046110a
lea ecx, [esp + 0x20]
call fcn.00403210
lea edx, [esp + 0x14]
push edx
call fcn.0044c106
mov eax, 1
jmp 0x403ca5
mov edx, dword [esp + 0x38]
push ebp
push 0x1388
push edx
call fcn.0046110a
mov edi, 0x7f
lea esi, [esp + 0x14]
call fcn.004036f0
mov edi, dword [esp + 0x3c]
push esi
call fcn.004038b0
lea ecx, [esp + 0x20]
call fcn.00403210
lea ecx, [esp + 0x14]
push ecx
call fcn.0044c106
mov eax, 1
jmp 0x403ca5
mov edi, 0x7f
call fcn.004036f0
mov edi, dword [esp + 0x3c]
lea edx, [esp + 0x14]
push edx
call fcn.004038b0
lea ecx, [esp + 0x20]
call fcn.00403210
lea eax, [esp + 0x14]
push eax
call fcn.0044c106
mov eax, 1
jmp 0x403ca5