Function at 0x518e50
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xa58
mov eax, dword [0x6aae14]
xor eax, esp
mov dword [esp + 0xa54], eax
mov eax, dword [esp + 0xa60]
mov ecx, dword [esp + 0xa64]
push ebp
push esi
mov esi, dword [esp + 0xa64]
xor ebp, ebp
push 0x103
lea edx, [esp + 0x15d]
push ebp
push edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], ebp
mov byte [esp + 0x164], 0
call fcn.005dfd60
add esp, 0xc
mov dword [esp + 0x24], ebp
cmp esi, ebp
je 0x5196d8
push 4
push str.www.
push esi
call fcn.004dd670
neg eax
sbb eax, eax
inc eax
push 0x25
push esi
mov dword [esp + 0x44], eax
call fcn.005e0940
add esp, 0x14
test eax, eax
jne 0x518ef2
push 0x640edc
push esi
call fcn.005e0a30
add esp, 8
test eax, eax
je 0x518efb
push esi
call fcn.004db180
add esp, 4
push 0x3a
push esi
call fcn.004db1c0
add esp, 8
test eax, eax
je 0x518f1e
push ebp
push str.http:__
push str.site:
push esi
call fcn.004e1b10
add esp, 0x10
push ebx
mov dword [esp + 0x14], ebp
mov byte [esp + 0x660], 0
mov byte [esp + 0x260], 0
push edi
mov ebx, dword [esp + 0x10]
cmp byte [ebx + ebp], 0x25
lea esi, [ebx + ebp]
mov dword [esp + 0x14], esi
jne 0x518fb2
xor eax, eax
lea edi, [ebx + ebp + 1]
mov dword [esp + 0x51], eax
mov dword [esp + 0x55], eax
mov byte [esp + 0x59], al
mov byte [esp + 0x50], al
mov al, byte [edi]
xor edx, edx
test al, al
je 0x518f85
lea esi, [esp + 0x50]
mov ecx, edi
sub esi, edi
jmp 0x518f70
cmp edx, 2
jge 0x518f81
mov byte [esi + ecx], al
mov al, byte [ecx + 1]
inc ecx
inc edx
test al, al
jne 0x518f70
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + edx + 0x58], 0
call fcn.004da6b0
add esp, 8
test eax, eax
je 0x518fb2
mov dl, byte [esp + 0x34]
lea eax, [ebx + ebp + 3]
push eax
push edi
mov byte [esi], dl
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov esi, dword [esp + 0x14]
mov al, byte [esi]
cmp al, 0x26
jne 0x519121
cmp byte [esi + 1], 0x23
jne 0x519121
push 0x103
lea ecx, [esp + 0x61]
push 0
push ecx
call fcn.005dfd60
mov bl, byte [esi + 2]
add esi, 2
add esp, 0xc
xor edi, edi
xor ebp, ebp
mov byte [esp + 0x5c], 0
test bl, bl
je 0x519055
movsx edx, bl
push edx
call fcn.005e1802
add esp, 4
test eax, eax
je 0x519006
mov bl, byte [esi]
sub bl, 0x20
cmp bl, 0x20
je 0x51904d
cmp bl, 9
je 0x51904d
cmp bl, 0x58
jne 0x519028
test edi, edi
jne 0x519055
mov al, byte [esi]
mov ebp, 1
mov byte [esp + 0x5c], al
mov edi, ebp
jmp 0x51904d
mov cl, bl
sub cl, 0x30
cmp cl, 9
ja 0x51903a
mov dl, byte [esi]
mov byte [esp + edi + 0x5c], dl
jmp 0x51904c
test ebp, ebp
je 0x519055
sub bl, 0x41
cmp bl, 5
ja 0x519055
mov al, byte [esi]
mov byte [esp + edi + 0x5c], al
inc edi
mov bl, byte [esi + 1]
inc esi
test bl, bl
jne 0x518ff1
mov byte [esp + edi + 0x5c], 0
cmp byte [esp + 0x5c], 0
je 0x5191e1
xor edx, edx
lea ecx, [esp + 0x5c]
jmp 0x519070
mov al, byte [ecx]
cmp al, 0x20
je 0x51907f
cmp al, 9
je 0x51907f
mov byte [esp + edx + 0x5c], al
inc edx
inc ecx
cmp byte [ecx], 0
jne 0x519070
mov byte [esp + edx + 0x5c], 0
mov al, byte [esp + 0x5c]
cmp al, 0x78
je 0x519096
cmp al, 0x58
jne 0x5190d8
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x61]
push edx
call fcn.004da6b0
add esp, 8
test eax, eax
je 0x5190cf
mov eax, dword [esp + 0x28]
cmp eax, 0x3002
je 0x5190c6
cmp eax, 0xfe12
je 0x5190c6
mov ecx, dword [esp + 0x14]
mov byte [ecx], al
jmp 0x519106
mov edx, dword [esp + 0x14]
mov byte [edx], 0x2e
jmp 0x519106
mov eax, dword [esp + 0x14]
mov byte [eax], 0x30
jmp 0x519106
lea ecx, [esp + 0x5c]
push ecx
call fcn.005e0909
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, 0x3002
je 0x5190ff
cmp eax, 0xfe12
je 0x5190ff
mov edx, dword [esp + 0x14]
mov byte [edx], al
jmp 0x519106
mov eax, dword [esp + 0x14]
mov byte [eax], 0x2e
cmp byte [esi], 0x3b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea eax, [ecx + edx + 1]
jne 0x5191d9
inc esi
jmp 0x5191d9
cmp al, 0x5c
jne 0x5191e1
cmp byte [esi + 1], 0x75
jne 0x5191e1
push 0x103
lea ecx, [esp + 0x61]
push 0
push ecx
call fcn.005dfd60
mov bl, byte [esi + 2]
add esi, 2
add esp, 0xc
xor edi, edi
mov byte [esp + 0x5c], 0
test bl, bl
je 0x51919c
jmp 0x519160
movsx edx, bl
push edx
call fcn.005e1802
add esp, 4
test eax, eax
je 0x519175
mov bl, byte [esi]
sub bl, 0x20
mov al, bl
sub al, 0x30
cmp al, 9
ja 0x519185
mov cl, byte [esi]
mov byte [esp + edi + 0x5c], cl
jmp 0x519193
sub bl, 0x41
cmp bl, 5
ja 0x51919c
mov dl, byte [esi]
mov byte [esp + edi + 0x5c], dl
mov bl, byte [esi + 1]
inc esi
inc edi
test bl, bl
jne 0x519160
mov byte [esp + edi + 0x5c], 0
cmp byte [esp + 0x5c], 0
je 0x5191e1
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x61]
push ecx
call fcn.004da6b0
add esp, 8
test eax, eax
je 0x5191ca
mov dl, byte [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov byte [eax], dl
jmp 0x5191d1
mov ecx, dword [esp + 0x14]
mov byte [ecx], 0x30
mov edx, dword [esp + 0x10]
lea eax, [edx + ebp + 1]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [esp + 0x14]
mov al, byte [edi]
cmp al, 0x5f
je 0x51931b
cmp al, 0x2d
je 0x51931b
cmp al, 0x2e
je 0x51931b
mov cl, al
sub cl, 0x30
cmp cl, 9
jbe 0x51931b
movzx edx, al
push edx
call fcn.005e1802
add esp, 4
test eax, eax
jne 0x51931b
mov byte [esp + 0x44], al
mov dword [esp + 0x45], eax
mov dword [esp + 0x49], eax
mov word [esp + 0x4d], ax
cmp dword [esp + 0x38], eax
je 0x51938a
mov al, byte [edi]
test al, al
je 0x51938a
cmp al, 0xa
je 0x51938a
cmp al, 0xd
je 0x51938a
cmp al, 0x2f
je 0x51938a
cmp al, 0x3f
je 0x51938a
lea eax, [esp + 0x664]
push eax
call fcn.00515090
test eax, eax
jne 0x51938a
cmp dword [esp + 0xa78], eax
jne 0x51938a
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, 5
mov dword [esp + 0x2c], eax
jg 0x519384
cmp dword [esp + 0x1c], 0
mov ebp, dword [esp + 0x18]
jne 0x5192a9
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x10]
lea esi, [ecx + ebp + 1]
push 0xa
lea edx, [esp + 0x48]
push esi
push edx
call fcn.005e1e30
add esp, 0xc
cmp byte [esp + 0x4d], 0
je 0x5192cd
mov byte [esp + 0x4e], 0
xor ecx, ecx
cmp byte [esp + 0x44], cl
je 0x5192f9
mov al, byte [esp + ecx + 0x44]
test al, al
je 0x519303
cmp al, 0x20
je 0x519303
cmp al, 0xa
je 0x519303
cmp al, 0xd
je 0x519303
cmp al, 0x2f
je 0x519303
cmp al, 0x3f
je 0x519303
inc ecx
cmp byte [esp + ecx + 0x44], 0
jne 0x5192d5
push esi
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x519376
lea eax, [esp + 0x44]
push eax
mov byte [esp + ecx + 0x48], 0
call fcn.00515090
test eax, eax
je 0x5192f9
mov byte [edi], 0x2e
jmp 0x51931f
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp ebp, ecx
jne 0x51933e
cmp byte [eax], 0x2e
jne 0x51933e
lea ecx, [eax + 1]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x518f34
mov al, byte [edi]
cmp al, 0x2e
jne 0x519352
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x664], 0
jmp 0x519356
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x664], al
inc ecx
mov byte [esp + ebp + 0x264], al
inc ebp
mov dword [esp + 0x30], ecx
mov byte [esp + ecx + 0x664], 0
mov dword [esp + 0x18], ebp
cmp ebp, 0x3ff
jl 0x518f34
jmp 0x51938e
mov ebp, dword [esp + 0x1c]
jmp 0x51938e
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
lea eax, [esp + ebp + 0x264]
mov dword [esi], ebp
mov byte [eax], 0
cmp ebp, 0x3ff
je 0x5196d6
test ebp, ebp
jne 0x5193c0
cmp byte [ebx], 0
je 0x5196d6
jmp 0x519555
jle 0x519555
cmp byte [eax - 1], 0x2e
jne 0x5193d0
mov byte [eax - 1], 0
lea edx, [esp + 0x160]
push edx
lea eax, [esp + 0x268]
push eax
mov byte [esp + 0x168], 0
call fcn.00508760
add esp, 8
cmp eax, 1
jne 0x51952a
xor eax, eax
push 0x103
push eax
lea ecx, [esp + 0x65]
push ecx
mov byte [esp + 0x28], 0
mov word [esp + 0x29], ax
mov byte [esp + 0x2b], al
mov byte [esp + 0x24], al
mov word [esp + 0x25], ax
mov byte [esp + 0x27], al
mov byte [esp + 0x20], al
mov word [esp + 0x21], ax
mov byte [esp + 0x23], al
mov byte [esp + 0x1c], al
mov word [esp + 0x1d], ax
mov byte [esp + 0x1f], al
mov byte [esp + 0x68], al
call fcn.005dfd60
add esp, 0xc
cmp byte [esp + 0x160], 0
je 0x5194bd
push 2
lea edx, [esp + 0x268]
push 0x64c418
push edx
call fcn.004dd670
add esp, 0xc
test eax, eax
je 0x5194a7
lea eax, [esp + 0x264]
push eax
call fcn.005e08f3
add esp, 4
cmp eax, 0xffff
ja 0x5194a7
lea ecx, [esp + 0x264]
push 0x2e
push ecx
call fcn.004dad90
add esp, 8
cmp eax, 3
je 0x5194a7
mov byte [esp + 0x264], 0
jmp 0x519555
lea edx, [esp + 0x160]
push edx
lea eax, [esp + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [esp + 0x264], 0
je 0x519555
lea ecx, [esp + 0x264]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.004d9250
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x80]
push str._s._s._s._s
push ecx
call fcn.005dfb23
mov eax, dword [esp + 0x50]
add esp, 0x2c
push 1
push 0x2c
lea edx, [esp + 0x64]
push edx
push eax
call fcn.004e5820
jmp 0x519555
lea ecx, [esp + 0x264]
push ecx
call dword [sym.imp.USER32.dll_CharLowerA]
mov edx, dword [esp + 0xa7c]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x26c]
push ecx
call fcn.00515470
add esp, 0xc
mov edx, dword [esi]
mov al, byte [edx + ebx]
lea ecx, [edx + ebx]
test al, al
je 0x5196d6
cmp al, 0x20
je 0x5196d6
cmp al, 0xa
je 0x5196d6
cmp al, 0xd
je 0x5196d6
cmp al, 0x2f
je 0x5196d6
cmp al, 0x3f
je 0x5196d6
cmp al, 0x3c
jne 0x5195e5
push 4
push str._br_
push ecx
call fcn.004dd670
add esp, 0xc
test eax, eax
je 0x5196d6
mov eax, dword [esi]
inc eax
mov dword [esp + 0x20], eax
add eax, ebx
cmp byte [eax], 0
je 0x5196d6
push 0x20
push eax
call fcn.005e0940
mov edx, dword [esp + 0x28]
mov esi, eax
lea eax, [ebx + edx]
push 0xa
push eax
call fcn.005e0940
add esp, 0x10
test esi, esi
jne 0x51960d
test eax, eax
je 0x5196d6
jmp 0x519617
cmp al, 0x3a
jne 0x5195a9
cmp edx, 4
jl 0x5195a9
push 7
lea eax, [ecx - 4]
push str.http:__
push eax
call fcn.004dd670
add esp, 0xc
test eax, eax
jne 0x5195a9
add dword [esi], 0xfffffffc
jmp 0x5196d6
test eax, eax
je 0x519615
cmp esi, eax
jae 0x519617
mov eax, esi
test eax, eax
je 0x5196d6
sub eax, ebx
sub eax, dword [esp + 0x20]
mov edi, eax
je 0x5196d6
cmp edi, 0xc8
jg 0x5196d6
lea eax, [edi + 0x104]
push 1
push eax
call fcn.005e34ab
mov esi, eax
add esp, 8
test esi, esi
je 0x5196d6
mov ecx, dword [esp + 0x20]
inc edi
push edi
add ebx, ecx
push ebx
push esi
call fcn.004d5c40
push 0
push str.www.
push esi
call fcn.004f5880
add esp, 0x18
cmp eax, 0xffffffff
jne 0x5196cd
push 0
push str.http:__
push esi
call fcn.004f5880
add esp, 0xc
cmp eax, 0xffffffff
jne 0x5196cd
push 0
push str.https:__
push esi
call fcn.004f5880
add esp, 0xc
cmp eax, 0xffffffff
jne 0x5196cd
mov edx, dword [esp + 0xa7c]
mov eax, dword [esp + 0xa78]
push edx
mov edx, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x28]
push ecx
push edx
push esi
call fcn.00518e50
push esi
call fcn.005e0865
add esp, 0x18
jmp 0x5196d6
push esi
call fcn.005e0865
add esp, 4
pop edi
pop ebx
mov ecx, dword [esp + 0xa5c]
pop esi
pop ebp
xor ecx, esp
call fcn.005dfbbe
add esp, 0xa58
ret