Function at 0x43806c
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
xor eax, eax
mov esi, edx
inc eax
push 4
pop ebx
movzx edx, byte [edi]
cmp edx, 0x2e
jg 0x438205
je 0x4381f1
cmp edx, 0x26
jg 0x438172
je 0x43816a
cmp edx, 0x22
jg 0x438115
je 0x438464
cmp edx, 9
jl 0x43823c
cmp edx, 0xa
jle 0x4380eb
cmp edx, 0xb
jle 0x43823c
cmp edx, 0xd
jle 0x4380eb
cmp edx, 0x20
je 0x4380eb
cmp edx, 0x21
jne 0x43823c
cmp byte [edi + 1], 0x3d
push 2
pop eax
jne 0x4385d0
mov dword [esi], 0x48
jmp 0x4385d6
movzx eax, byte [edi + 1]
xor edx, edx
inc edx
test byte [eax + 0x5251e0], dl
je 0x438108
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5251e0], 1
jne 0x4380fa
mov dword [esi], 0x94
mov eax, edx
jmp 0x4385d6
mov ecx, edx
sub ecx, 0x23
je 0x438135
dec ecx
je 0x43855f
dec ecx
jne 0x43823c
mov dword [esi], 0x57
jmp 0x4381c1
mov edx, eax
movzx eax, byte [edi + 1]
push 4
pop ebx
test byte [eax + 0x5251e0], bl
je 0x43855c
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5251e0], bl
jne 0x43814a
xor eax, eax
inc eax
cmp edx, eax
jle 0x43855f
mov dword [esi], 0x84
jmp 0x43810e
mov dword [esi], 0x4f
jmp 0x4381c1
mov eax, edx
sub eax, 0x27
je 0x438464
dec eax
je 0x4381e9
dec eax
je 0x4381e1
dec eax
je 0x4381d9
dec eax
je 0x4381d1
dec eax
je 0x4381c9
dec eax
jne 0x43823c
cmp byte [edi + 1], 0x2d
jne 0x4381bb
movzx ecx, byte [edi + 2]
push 2
pop eax
jmp 0x4381ac
cmp ecx, 0xa
je 0x4381b0
inc eax
movzx ecx, byte [eax + edi]
test ecx, ecx
jne 0x4381a2
mov dword [esi], 0x94
jmp 0x4385d6
mov dword [esi], 0x54
xor eax, eax
inc eax
jmp 0x4385d6
mov dword [esi], 0x19
jmp 0x4381c1
mov dword [esi], 0x53
jmp 0x4381c1
mov dword [esi], 0x55
jmp 0x4381c1
mov dword [esi], 0x17
jmp 0x4381c1
mov dword [esi], 0x16
jmp 0x4381c1
movzx eax, byte [edi + 1]
test byte [eax + 0x5251e0], bl
jne 0x43825e
mov dword [esi], 0x75
jmp 0x4381c1
cmp edx, 0x3f
jg 0x438405
je 0x4383d7
cmp edx, 0x3b
jg 0x43834c
je 0x438342
cmp edx, 0x2f
je 0x438304
jle 0x43823c
cmp edx, 0x39
jle 0x43825e
cmp edx, 0x3a
je 0x43855f
test dl, dl
js 0x438531
cmp edx, 0x1f
jle 0x438256
cmp byte [edx + 0x524700], 0
jne 0x438531
xor eax, eax
inc eax
jmp 0x4385d0
xor ecx, ecx
mov dword [esi], 0x81
test byte [edx + 0x5251e0], bl
je 0x43827b
inc ecx
movzx eax, byte [ecx + edi]
test byte [eax + 0x5251e0], bl
jne 0x43826e
cmp byte [ecx + edi], 0x2e
jne 0x438294
inc ecx
movzx eax, byte [ecx + edi]
test byte [eax + 0x5251e0], bl
jne 0x438281
mov dword [esi], 0x82
mov al, byte [ecx + edi]
cmp al, 0x65
je 0x43829f
cmp al, 0x45
jne 0x4382dd
mov dl, byte [ecx + edi + 1]
movzx eax, dl
test byte [eax + 0x5251e0], bl
jne 0x4382c5
cmp dl, 0x2b
je 0x4382b8
cmp dl, 0x2d
jne 0x4382dd
movzx eax, byte [ecx + edi + 2]
test byte [eax + 0x5251e0], bl
je 0x4382dd
add ecx, 2
jmp 0x4382cb
inc ecx
movzx eax, byte [ecx + edi]
test byte [eax + 0x5251e0], bl
jne 0x4382ca
mov dword [esi], 0x82
movzx eax, byte [ecx + edi]
test al, al
js 0x4382fb
cmp eax, 0x1f
jle 0x43852a
cmp byte [eax + 0x524700], 0
je 0x43852a
mov dword [esi], 0x93
inc ecx
jmp 0x4382dd
cmp byte [edi + 1], 0x2a
jne 0x438337
mov cl, byte [edi + 2]
test cl, cl
je 0x438337
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x438322
cmp byte [eax + edi], 0x2f
je 0x438331
movzx ecx, byte [eax + edi]
test ecx, ecx
je 0x4381b0
inc eax
jmp 0x438317
inc eax
jmp 0x4381b0
mov dword [esi], 0x56
jmp 0x4381c1
xor eax, eax
inc eax
mov dword [esi], eax
jmp 0x4385d6
mov eax, edx
sub eax, 0x3c
je 0x43839b
dec eax
je 0x438386
dec eax
jne 0x43823c
movzx eax, byte [edi + 1]
cmp eax, 0x3d
jne 0x43836e
mov dword [esi], 0x4d
jmp 0x4383aa
cmp eax, 0x3e
jne 0x43837b
mov dword [esi], 0x52
jmp 0x4383aa
mov dword [esi], 0x4a
jmp 0x4381c1
xor eax, eax
mov dword [esi], 0x49
cmp byte [edi + 1], 0x3d
sete al
inc eax
jmp 0x4385d6
movzx eax, byte [edi + 1]
cmp eax, 0x3d
jne 0x4383b2
mov dword [esi], 0x4b
push 2
pop eax
jmp 0x4385d6
cmp eax, 0x3e
jne 0x4383bf
mov dword [esi], 0x48
jmp 0x4383aa
cmp eax, 0x3c
jne 0x4383cc
mov dword [esi], 0x51
jmp 0x4383aa
mov dword [esi], 0x4c
jmp 0x4381c1
movzx eax, byte [edi + 1]
xor edx, edx
push 4
pop ebx
inc edx
mov dword [esi], 0x85
test byte [eax + 0x5251e0], bl
je 0x43810e
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5251e0], bl
jne 0x4383f3
jmp 0x43810e
mov eax, edx
sub eax, 0x40
je 0x43855c
sub eax, 0x18
je 0x4384d2
sub eax, 3
je 0x4384aa
sub eax, 5
je 0x438464
sub eax, 0x18
je 0x4384d2
sub eax, 4
je 0x438448
dec eax
dec eax
jne 0x43823c
mov dword [esi], 0x5c
jmp 0x4381c1
cmp byte [edi + 1], 0x7c
je 0x438459
mov dword [esi], 0x50
jmp 0x4381c1
mov dword [esi], 0x58
jmp 0x4383aa
movzx ebx, byte [edi + 1]
xor ecx, ecx
inc ecx
jmp 0x438480
cmp ebx, edx
jne 0x43847b
movzx eax, byte [edi + ecx + 1]
cmp eax, edx
jne 0x438484
inc ecx
inc ecx
movzx ebx, byte [ecx + edi]
test ebx, ebx
jne 0x43846d
cmp ebx, 0x27
jne 0x438497
mov dword [esi], 0x5d
lea eax, [ecx + 1]
jmp 0x4385d6
test ebx, ebx
je 0x4384a3
mov dword [esi], 0x1a
jmp 0x43848f
mov eax, ecx
jmp 0x4385d0
xor eax, eax
inc eax
jmp 0x4384b8
movzx edx, byte [eax + edi]
test edx, edx
je 0x4384bd
inc eax
cmp edx, 0x5d
jne 0x4384af
push 0x1a
cmp edx, 0x5d
mov ecx, 0x93
pop edi
cmove ecx, edi
mov dword [esi], ecx
jmp 0x4385d6
cmp byte [edi + 1], 0x27
jne 0x43823c
movzx edx, byte [edi + 2]
push 2
mov dword [esi], 0x83
pop ecx
jmp 0x438507
cmp edx, 0x27
je 0x43850b
movzx eax, dl
test byte [eax + 0x5251e0], 8
jne 0x438502
mov dword [esi], 0x93
inc ecx
movzx edx, byte [ecx + edi]
test edx, edx
jne 0x4384eb
mov eax, ecx
and eax, reloc.WS2_32.dll_accept
jns 0x438519
dec eax
or eax, 0xfffffffe
inc eax
jne 0x43851f
test edx, edx
jne 0x438529
mov dword [esi], 0x93
test edx, edx
je 0x43852a
inc ecx
mov eax, ecx
jmp 0x4385d6
xor ebx, ebx
inc ebx
movzx eax, byte [ebx + edi]
test al, al
js 0x43854a
cmp eax, 0x1f
jle 0x43854d
cmp byte [eax + 0x524700], 0
je 0x43854d
inc ebx
jmp 0x438534
mov edx, ebx
mov ecx, edi
call fcn.00437fec
mov dword [esi], eax
mov eax, ebx
jmp 0x4385d6
xor eax, eax
inc eax
movzx ecx, byte [edi + 1]
xor edx, edx
mov dword [esi], 0x85
test ecx, ecx
je 0x4385d0
test cl, cl
js 0x438598
cmp ecx, 0x1f
jle 0x438581
cmp byte [ecx + 0x524700], 0
jne 0x438598
cmp ecx, 0x28
jne 0x43858a
test edx, edx
jg 0x4385a4
cmp ecx, 0x3a
jne 0x4385cc
cmp byte [edi + eax + 1], cl
jne 0x4385cc
inc eax
jmp 0x438599
inc edx
inc eax
movzx ecx, byte [eax + edi]
test ecx, ecx
jne 0x43856f
jmp 0x4385cc
inc eax
mov dword [ebp - 4], eax
movzx ecx, byte [eax + edi]
test ecx, ecx
je 0x4385be
test byte [ecx + 0x5251e0], 1
jne 0x4385be
cmp ecx, 0x29
jne 0x4385a4
cmp ecx, 0x29
jne 0x4385c6
inc eax
jmp 0x4385cc
mov dword [esi], 0x93
test edx, edx
jne 0x4385d6
mov dword [esi], 0x93
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret