Function at 0x100a4f20
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0xc], edx
push edi
mov edi, dword [esi + 0x28c8]
test edi, edi
je 0x100a4f47
test byte [edi + 0x1ae], 8
je 0x100a4f47
mov edi, dword [edi + 0x240]
mov ebx, dword [esi + 0x28b0]
mov ecx, dword fs:[0x2c]
mov eax, dword [0x11d0c5b8]
mov dword [ebp - 8], ecx
test ebx, ebx
je 0x100a4f8a
test dword [ebx + 0x10], 0x78000000
jne 0x100a4f8a
cmp ebx, edi
je 0x100a4f8a
mov eax, dword [ecx + eax*4]
push dword [ebx + 0x238]
push esi
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x7a68]
xor eax, eax
mov edx, dword [ecx]
call dword [edx + 0x7c]
test edi, edi
je 0x100a4fe8
test byte [edi + 0x91], 0x20
je 0x100a4fe8
mov eax, dword [edi + 0x20c]
mov al, byte [eax + 0x58]
cmp al, 0x16
je 0x100a4fc8
cmp al, 0x19
je 0x100a4fc8
cmp al, 0x17
je 0x100a4fc8
cmp al, 0x38
je 0x100a4fc8
cmp al, 0x39
je 0x100a4fc8
cmp al, 0x3b
je 0x100a4fc8
cmp al, 0x3c
je 0x100a4fc8
cmp al, 0x3d
je 0x100a4fc8
cmp al, 0x3e
je 0x100a4fc8
cmp al, 0x18
jne 0x100a4fe8
mov ecx, dword [esi + 0x28b0]
test ecx, ecx
je 0x100a4fdb
cmp ecx, edi
je 0x100a4fdb
call fcn.1009c5e0
push edi
mov ecx, esi
call fcn.10020590
jmp 0x100a508b
mov edx, dword [esi + 0x28b0]
mov edi, 0x42
test edx, edx
je 0x100a5022
mov eax, dword [edx + 0x20c]
test eax, eax
je 0x100a5022
movsx edi, byte [eax + 0x58]
and byte [eax + 0x285], 0xef
mov eax, dword [esi]
mov dword [esi + 0x28b0], 0
mov ecx, dword [eax + 0x7a68]
mov eax, ecx
jmp 0x100a503a
mov eax, dword [esi]
mov dword [esi + 0x28b0], 0
mov ecx, dword [eax + 0x7a68]
mov eax, ecx
test edx, edx
je 0x100a5052
or dword [ecx + 0xc], 0x10000
cmp edi, 0x42
je 0x100a5052
or dword [ecx + 0x10], 0x8000
lea edx, [ecx + 0x10]
jmp 0x100a5055
lea edx, [eax + 0x10]
or dword [edx], 0x4000000
mov eax, dword [0x11d0c5b8]
mov edx, dword [ebp - 8]
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 0x10]
test dword [eax + 0x190], 0x3fff00
je 0x100a5081
mov eax, dword [ecx]
push esi
call dword [eax + 0x158]
mov dword [esi + 0x28c8], 0
mov eax, dword [ebp - 0xc]
mov byte [ebp - 1], 0
test eax, eax
je 0x100a50be
mov cl, al
not cl
and cl, 1
mov byte [ebp - 1], cl
test al, 6
je 0x100a50a8
test cl, cl
je 0x100a50dd
mov eax, dword [esi + 0xf7c]
cmp dword [eax + 0x1838], 0x8918
je 0x100a50dd
mov cl, 1
jmp 0x100a50df
cmp dword [esi + 0x147c], 0
jne 0x100a50dd
cmp dword [esi + 0x1498], 0
jne 0x100a50dd
cmp dword [esi + 0x1530], 0
jne 0x100a50dd
mov cl, 1
jmp 0x100a50df
xor cl, cl
mov al, byte [esi + 0xf5a]
and al, 0xfe
or al, cl
mov byte [esi + 0xf5a], al
test al, 1
jne 0x100a5131
xor ebx, ebx
lea edi, [esi + 0x288c]
nop dword [eax + eax]
mov ecx, dword [edi]
test ecx, ecx
je 0x100a5128
mov edx, dword [esi + 0x28b0]
test edx, edx
je 0x100a5128
mov eax, dword [ecx + 0x34]
cmp eax, dword [edx + 0x34]
ja 0x100a51d5
mov eax, dword [ecx + 0x30]
cmp eax, dword [edx + 0x30]
ja 0x100a51d5
inc ebx
add edi, 4
cmp ebx, 4
jb 0x100a5100
mov ecx, dword [esi + 0x28b0]
mov edi, esi
test ecx, ecx
je 0x100a5240
cmp byte [ebp - 1], 0
mov eax, dword [edi + 0x288c]
mov ecx, dword [ecx + 0x1b0]
mov eax, dword [eax + 0x20c]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x288c]
mov edx, dword [eax + 0x20c]
mov eax, dword [esi + 0x28b0]
mov ecx, dword [eax + 0x1b0]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x20], eax
jne 0x100a5240
mov ecx, dword [edi + 0x288c]
mov edx, dword [esi + 0x28b0]
mov eax, dword [ecx + 0x34]
cmp eax, dword [edx + 0x34]
ja 0x100a51a1
mov eax, dword [ecx + 0x30]
cmp eax, dword [edx + 0x30]
jbe 0x100a5240
mov edi, 0x42
test edx, edx
je 0x100a51e1
mov eax, dword [edx + 0x20c]
test eax, eax
je 0x100a51e1
movsx edi, byte [eax + 0x58]
and byte [eax + 0x285], 0xef
mov eax, dword [esi]
mov dword [esi + 0x28b0], 0
mov ecx, dword [eax + 0x7a68]
mov eax, ecx
jmp 0x100a51f9
pop edi
pop esi
mov eax, 0x88760028
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
mov dword [esi + 0x28b0], 0
mov ecx, dword [eax + 0x7a68]
mov eax, ecx
test edx, edx
je 0x100a5211
or dword [ecx + 0xc], 0x10000
cmp edi, 0x42
je 0x100a5211
or dword [ecx + 0x10], 0x8000
lea edx, [ecx + 0x10]
jmp 0x100a5214
lea edx, [eax + 0x10]
or dword [edx], 0x4000000
mov eax, dword [0x11d0c5b8]
mov edx, dword [ebp - 8]
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 0x10]
test dword [eax + 0x190], 0x3fff00
je 0x100a5240
mov eax, dword [ecx]
push esi
call dword [eax + 0x158]
test byte [esi + 0xf58], 0x20
je 0x100a526e
mov eax, dword [esi + 0x28b0]
test eax, eax
je 0x100a526e
mov eax, dword [eax + 0x1a8]
and eax, 0xff0
neg eax
pop edi
sbb eax, eax
pop esi
and eax, 0x88760028
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret