Function at 0x5857b0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x585a6b
cmp eax, 0x7c
je 0x585a6b
cmp eax, 0x29
jne 0x5857f0
cmp dword [esi + 0x10], 0
jne 0x585a6b
test dword [esi + 0x50], 0x10000000
je 0x585a7b
jmp 0x585974
cmp eax, 0x2e
jne 0x585804
push 5
lea ecx, [esi + 0x24]
call fcn.00585aa0
jmp 0x585981
cmp eax, 0x5c
jne 0x585860
mov ecx, esi
call fcn.00585750
test byte [esi + 0x50], 0x80
je 0x585854
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x585833
push 4
lea ecx, [esi + 0x24]
call fcn.00585aa0
mov ecx, esi
call fcn.00585750
jmp 0x585a5d
cmp al, 0x42
jne 0x585854
push 4
lea ecx, [esi + 0x24]
call fcn.00585aa0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00585750
jmp 0x585a5d
mov ecx, esi
call fcn.00586c20
jmp 0x585988
cmp eax, 0x5b
jne 0x5858c1
mov ecx, esi
call fcn.00585750
lea ecx, [esi + 0x24]
call fcn.00587ea0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x58588d
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00585750
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x5858ab
cmp eax, 0x5d
jne 0x5858ab
push eax
lea ecx, [esi + 0x24]
call fcn.00587f30
mov ecx, esi
call fcn.00585750
mov ecx, esi
call fcn.00587990
cmp dword [esi + 0x4c], 0x5d
jne 0x585a82
jmp 0x585981
cmp eax, 0x28
jne 0x5858f4
mov ecx, esi
call fcn.00585750
mov ecx, esi
call fcn.00586db0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x585a7b
mov ecx, esi
call fcn.00585750
test bl, bl
je 0x585a5d
jmp 0x585988
cmp eax, 0x5e
jne 0x58590f
push 2
lea ecx, [esi + 0x24]
call fcn.00585aa0
mov ecx, esi
call fcn.00585750
jmp 0x585a5d
cmp eax, 0x24
jne 0x58592a
push 3
lea ecx, [esi + 0x24]
call fcn.00585aa0
mov ecx, esi
call fcn.00585750
jmp 0x585a5d
cmp eax, 0x2a
je 0x585a74
cmp eax, 0x2b
je 0x585a74
cmp eax, 0x3f
je 0x585a74
cmp eax, 0x7b
je 0x585a74
cmp eax, 0x7d
jne 0x585962
test dword [esi + 0x50], 0x10000000
je 0x585a89
jmp 0x585974
cmp eax, 0x5d
jne 0x585974
test dword [esi + 0x50], 0x10000000
je 0x585a82
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00586ec0
mov ecx, esi
call fcn.00585750
mov eax, dword [esi + 0x4c]
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
je 0x585a1f
cmp eax, 0x2b
jne 0x5859a3
lea ebx, [edi + 2]
jmp 0x585a1f
cmp eax, 0x3f
jne 0x5859ad
lea edi, [eax - 0x3e]
jmp 0x585a1f
cmp eax, 0x7b
jne 0x585a5d
mov ecx, esi
call fcn.00585750
push 7
push closesocket
push 0xa
mov ecx, esi
call fcn.005885c0
cmp eax, 0x7fffffff
je 0x585a90
cmp dword [esi + 0x4c], 0x2c
mov ebx, dword [esi + 0x44]
je 0x5859e5
mov edi, ebx
jmp 0x585a10
mov ecx, esi
call fcn.00585750
cmp dword [esi + 0x4c], 0x7d
je 0x585a16
push 7
push closesocket
push 0xa
mov ecx, esi
call fcn.005885c0
cmp eax, 0x7fffffff
je 0x585a90
mov edi, dword [esi + 0x44]
cmp dword [esi + 0x4c], 0x7d
jne 0x585a90
cmp edi, 0xffffffff
je 0x585a1f
cmp edi, ebx
jl 0x585a90
mov eax, dword [esi + 0x28]
mov ecx, esi
or dword [eax + 8], 4
call fcn.00585750
test dword [esi + 0x50], 0x400
je 0x585a4a
cmp dword [esi + 0x4c], 0x3f
jne 0x585a4a
mov ecx, esi
mov byte [esp + 0x10], 0
call fcn.00585750
jmp 0x585a4f
mov byte [esp + 0x10], 1
push dword [esp + 0x10]
lea ecx, [esi + 0x24]
push edi
push ebx
call fcn.00587fa0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x5857c6
pop edi
pop esi
mov al, cl
pop ebx
add esp, 8
ret
push 0xa
call fcn.005840f0
push 5
call fcn.005840f0
push 4
call fcn.005840f0
push 6
call fcn.005840f0
push 7
call fcn.005840f0
int3