Function at 0x1011b310
Capabilities:
Parse credit card information

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
xor ebx, ebx
push edi
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
cmp ecx, edx
jae 0x1011b395
mov eax, dword [esi + 0x18]
mov edi, 0x20
cmp eax, edi
je 0x1011b33f
cmp eax, 9
je 0x1011b33f
cmp eax, 0xa
je 0x1011b33f
cmp eax, 0xd
jne 0x1011b395
cmp ecx, edx
jae 0x1011b37a
mov dl, byte [esi + 0xd]
inc ecx
cmp eax, 0x100
mov byte [esi + 0xc], dl
mov dword [esi + 0x14], eax
mov dword [esi + 8], ecx
jl 0x1011b35b
inc ecx
mov dword [esi + 8], ecx
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 8]
xor ecx, ecx
cmp eax, 0x100
setge cl
add ecx, edx
mov dword [esi + 0x18], eax
push ecx
mov ecx, esi
call fcn.100efda0
jmp 0x1011b38b
mov byte [esi + 0xc], 0
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov byte [esi + 0xd], 1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
cmp ecx, edx
jb 0x1011b324
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esi + 8]
mov edx, dword [ecx]
dec eax
push eax
call dword [edx + 0x48]
mov edi, dword [esi + 0x18]
cmp edi, 0x80
jge 0x1011b5ff
push edi
call fcn.1014d5cc
add esp, 4
test eax, eax
jne 0x1011b3d6
cmp edi, 0x2e
je 0x1011b3d6
cmp edi, 0x5f
je 0x1011b3d6
cmp edi, 0x5c
jne 0x1011b5ff
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
cmp ecx, eax
jae 0x1011b515
mov ebp, dword [esp + 0x24]
mov edi, dword [esi + 0x18]
cmp edi, 0x20
je 0x1011b515
cmp edi, 9
je 0x1011b515
cmp edi, 0xa
je 0x1011b515
cmp edi, 0xd
je 0x1011b515
lea edx, [ebp - 1]
cmp ebx, edx
jge 0x1011b515
push edi
call fcn.1014d5cc
add esp, 4
test eax, eax
jne 0x1011b4a2
cmp edi, 0x2a
je 0x1011b515
cmp edi, 0x2f
je 0x1011b515
cmp edi, 0x2d
je 0x1011b515
cmp edi, 0x2b
je 0x1011b515
cmp edi, 0x28
je 0x1011b515
cmp edi, 0x29
je 0x1011b515
cmp edi, 0x3d
je 0x1011b515
cmp edi, 0x25
je 0x1011b515
cmp edi, 0x5b
je 0x1011b515
cmp edi, 0x5d
je 0x1011b515
cmp edi, 0x3c
je 0x1011b515
cmp edi, 0x3e
je 0x1011b515
cmp edi, 0x2c
je 0x1011b515
cmp edi, 0x3b
je 0x1011b515
cmp edi, 0x3a
je 0x1011b515
mov ecx, dword [esp + 0x20]
mov al, byte [esi + 0x18]
mov byte [ebx + ecx], al
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
inc ebx
cmp ecx, eax
jae 0x1011b4f1
mov eax, dword [esi + 0x18]
mov dl, byte [esi + 0xd]
inc ecx
cmp eax, 0x100
mov byte [esi + 0xc], dl
mov dword [esi + 0x14], eax
mov dword [esi + 8], ecx
jl 0x1011b4d2
inc ecx
mov dword [esi + 8], ecx
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 8]
xor ecx, ecx
cmp eax, 0x100
setge cl
add ecx, edx
mov dword [esi + 0x18], eax
push ecx
mov ecx, esi
call fcn.100efda0
jmp 0x1011b507
mov eax, 0x20
mov byte [esi + 0xc], 0
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov byte [esi + 0xd], 1
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
cmp edx, eax
jb 0x1011b3e8
mov edx, dword [esp + 0x20]
mov edi, edx
mov byte [ebx + edx], 0
mov al, byte [edx]
test al, al
je 0x1011b54f
movsx eax, byte [edi]
push eax
call fcn.1014d4ff
add esp, 4
test eax, eax
je 0x1011b543
movsx ecx, byte [edi]
push ecx
call fcn.1014e82c
add esp, 4
mov byte [edi], al
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1011b525
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
push edx
mov edi, dword [eax + 4]
mov ecx, dword [eax]
mov ebp, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x20], edi
mov edi, dword [eax + 8]
call fcn.1011cb50
test al, al
je 0x1011b576
mov eax, 3
jmp 0x1011b5ca
mov edx, dword [esp + 0x20]
mov ecx, edi
push edx
call fcn.1011cb50
test al, al
je 0x1011b58d
mov eax, 5
jmp 0x1011b5ca
mov edi, dword [esp + 0x20]
mov ecx, ebp
push edi
call fcn.1011cb50
test al, al
je 0x1011b5a4
mov eax, 6
jmp 0x1011b5ca
push edi
mov ecx, ebx
call fcn.1011cb50
test al, al
je 0x1011b5b7
mov eax, 7
jmp 0x1011b5ca
mov ecx, dword [esp + 0x1c]
push edi
call fcn.1011cb50
test al, al
je 0x1011b5e8
mov eax, 4
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x10], eax
push eax
mov eax, dword [esi + 8]
mov edx, dword [ecx]
dec eax
push eax
call dword [edx + 0x48]
mov dword [esi + 0x10], 0
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov dword [esi + 0x10], 0
dec eax
mov edx, dword [ecx]
push 0
push eax
call dword [edx + 0x48]
pop edi
pop esi
pop ebp
pop ebx
ret