Function at 0x100542a4
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov edi, ecx
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x10], edx
cmp edx, ecx
jbe 0x1005433d
mov esi, dword [edi]
lea eax, [ecx + 1]
mov ebx, eax
mov dword [edi + 8], eax
movzx eax, byte [esi + ecx]
mov dl, byte [eax + str.WRRRRRRRRWWRWWRRRRRRRRRRRRRRRRRRWRRRRDRRDDRNRNNDNNNNNNNNNNRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRWRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW_0_R]
cmp dl, 0x57
jne 0x1005430b
mov dword [ebp - 0x18], edi
mov edi, esi
mov esi, dword [ebp - 0x10]
mov eax, esi
cmp esi, ebx
jbe 0x10054341
lea ecx, [ebx + 1]
mov eax, dword [ebp - 0x18]
mov dword [eax + 8], ecx
movzx eax, byte [edi + ebx]
mov dl, byte [eax + str.WRRRRRRRRWWRWWRRRRRRRRRRRRRRRRRRWRRRRDRRDDRNRNNDNNNNNNNNNNRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRWRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW_0_R]
mov ebx, ecx
cmp dl, 0x57
je 0x100542e0
mov ebx, ecx
mov ecx, esi
mov esi, edi
mov edi, dword [ebp - 0x18]
jmp 0x1005430e
mov ecx, dword [ebp - 0x10]
cmp al, 0x25
jne 0x10054355
mov eax, ebx
cmp ebx, ecx
mov edx, ecx
cmova edx, ebx
cmp edx, eax
je 0x10054341
lea ecx, [eax + 1]
mov dword [edi + 8], ecx
movzx ebx, byte [esi + eax]
cmp ebx, 0xd
je 0x10054335
mov eax, ecx
cmp ebx, 0xa
jne 0x1005431b
cmp dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
ja 0x100542c1
xor ecx, ecx
jmp 0x10054346
xor ecx, ecx
mov eax, dword [ebp + 8]
mov dword [eax + 4], ecx
mov dword [eax], ecx
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov ecx, ebx
mov dword [ebp - 0x18], ebx
lea ecx, [ebx - 1]
mov dword [ebp - 0x14], ecx
cmp dl, 0x44
jne 0x100543e4
movzx eax, al
xor edx, edx
inc edx
cmp eax, 0x3b
jg 0x10054425
cmp eax, 0x28
mov ecx, dword [ebp - 0x10]
je 0x10054481
cmp eax, 0x2f
jne 0x10054564
cmp ecx, ebx
jbe 0x100543bb
xor edx, edx
inc edx
lea eax, [ebx + 1]
mov dword [edi + 8], eax
mov ecx, ebx
movzx ebx, byte [esi + ebx]
movzx ebx, byte [ebx + str.WRRRRRRRRWWRWWRRRRRRRRRRRRRRRRRRWRRRRDRRDDRNRNNDNNNNNNNNNNRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRWRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW_0_R]
cmp ebx, 0x4e
je 0x100543b1
cmp ebx, 0x52
jne 0x10054543
inc edx
mov ebx, eax
mov ecx, dword [ebp - 0x10]
cmp ecx, eax
jne 0x10054390
mov edx, dword [ebp - 0x14]
xor edi, edi
sub ecx, edx
mov eax, dword [ebp + 8]
jb 0x10054595
cmp ecx, edi
jb 0x10054598
add esi, edx
test edi, edi
cmove esi, edi
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x1005434b
mov bl, 1
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
cmp ecx, eax
mov edx, dword [ebp - 0x14]
jae 0x10054468
mov ebx, ecx
sub al, bl
inc al
mov ah, 1
lea edx, [ebx + 1]
mov dword [edi + 8], edx
mov ecx, ebx
movzx ebx, byte [esi + ebx]
movzx ebx, byte [ebx + str.WRRRRRRRRWWRWWRRRRRRRRRRRRRRRRRRWRRRRDRRDDRNRNNDNNNNNNNNNNRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDRDRRWRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW_0_R]
cmp ebx, 0x57
je 0x1005445d
cmp ebx, 0x44
je 0x1005445d
inc ah
mov ebx, edx
cmp dword [ebp - 0x10], edx
jne 0x100543fb
mov ebx, eax
jmp 0x10054462
cmp eax, 0x3c
mov ecx, dword [ebp - 0x10]
je 0x100544d1
cmp eax, 0x3e
jne 0x10054564
cmp ecx, ebx
jbe 0x10054518
lea eax, [ebx + 1]
mov dword [edi + 8], eax
xor edx, edx
cmp byte [esi + ebx], 0x3e
sete dl
cmove ebx, eax
mov dword [edi + 8], ebx
inc edx
jmp 0x10054564
mov bl, ah
mov dword [edi + 8], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
sub eax, edx
jb 0x1005458c
movzx ecx, bl
cmp eax, ecx
mov eax, dword [ebp + 8]
jae 0x1005457b
int3
mov eax, ebx
cmp ebx, ecx
jae 0x10054557
xor eax, eax
inc eax
mov dword [ebp - 0x18], ebx
movzx edx, byte [esi + ebx]
cmp edx, 0x5c
je 0x100544b5
cmp edx, 0x29
jne 0x100544a6
dec eax
je 0x10054554
xor ebx, ebx
cmp dl, 0x28
sete bl
add eax, ebx
mov ebx, dword [ebp - 0x18]
jmp 0x100544bc
mov ebx, dword [ebp - 0x18]
inc ebx
mov dword [edi + 8], ebx
cmp ecx, ebx
jbe 0x10054557
inc ebx
mov dword [edi + 8], ebx
cmp ebx, ecx
jb 0x1005448e
jmp 0x10054557
cmp ecx, ebx
jbe 0x10054527
mov eax, ebx
mov ecx, ebx
inc eax
mov dword [edi + 8], eax
mov edx, 2
cmp byte [esi + ebx], 0x3c
mov ecx, dword [ebp - 0x10]
je 0x10054564
cmp eax, ecx
jae 0x10054511
add ebx, 2
mov edx, ecx
neg edx
mov eax, ebx
cmp byte [esi + eax - 1], 0x3e
mov dword [edi + 8], eax
je 0x10054511
lea ecx, [edx + eax]
inc ecx
inc eax
cmp ecx, 1
mov ecx, dword [ebp - 0x10]
jne 0x100544f8
mov eax, ecx
sub eax, dword [ebp - 0x14]
mov edx, eax
jmp 0x10054564
mov edx, dword [ebp - 0x14]
cmp ecx, edx
jb 0x1005459b
mov eax, dword [ebp + 8]
jne 0x10054533
int3
mov edx, dword [ebp - 0x14]
cmp ecx, edx
jb 0x1005459e
mov eax, dword [ebp + 8]
je 0x100545a1
add esi, edx
mov dword [eax], esi
mov dword [eax + 4], 1
jmp 0x1005434b
mov dword [edi + 8], ecx
movzx edi, dl
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x100543c0
mov ebx, dword [ebp - 0x18]
cmp ebx, ecx
jae 0x1005455f
inc ebx
mov dword [edi + 8], ebx
sub ebx, dword [ebp - 0x14]
mov edx, ebx
mov edi, edx
mov edx, dword [ebp - 0x14]
sub ecx, edx
jb 0x1005458f
mov eax, ecx
mov ecx, edi
movzx ecx, cl
cmp eax, ecx
mov eax, dword [ebp + 8]
jb 0x10054592
add esi, edx
test ecx, ecx
cmove esi, ecx
mov dword [eax], esi
mov dword [eax + 4], ecx
jmp 0x1005434b
int3
int3
int3
int3
int3
int3
int3
int3