Function at 0x10040090
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d63db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x10040450
lea esp, [esp]
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x10040450
cmp eax, 0x29
jne 0x100400e8
cmp dword [esi + 0x10], 0
jne 0x10040450
test dword [esi + 0x50], 0x10000000
je 0x10040462
cmp eax, 0x2e
jne 0x100401a5
push 0x14
call fcn.100afd71
mov ecx, eax
add esp, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
test ecx, ecx
je 0x1004012f
mov dword [ecx], 0x101022cc
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x10040131
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10040154
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10040199
cmp byte [eax], 0x5c
jne 0x10040197
inc eax
cmp eax, ecx
je 0x10040197
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10040184
mov dl, byte [eax]
cmp dl, 0x28
je 0x10040195
cmp dl, 0x29
je 0x10040195
test cl, 0x10
jne 0x10040197
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10040195
cmp cl, 0x7d
jne 0x10040197
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003eab0
jmp 0x1004043d
cmp eax, 0x5c
jne 0x100402c2
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100401ea
cmp byte [eax], 0x5c
jne 0x100401e8
inc eax
cmp eax, ecx
je 0x100401e8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100401d5
mov dl, byte [eax]
cmp dl, 0x28
je 0x100401e6
cmp dl, 0x29
je 0x100401e6
test cl, 0x10
jne 0x100401e8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100401e6
cmp cl, 0x7d
jne 0x100401e8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003eab0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x10040253
cmp byte [esi + 0x48], 0x62
jne 0x10040253
push 4
lea ecx, [esi + 0x24]
call fcn.10021820
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10040247
cmp byte [eax], 0x5c
jne 0x10040245
inc eax
cmp eax, ecx
je 0x10040245
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10040232
mov cl, byte [eax]
cmp cl, 0x28
je 0x10040243
cmp cl, 0x29
je 0x10040243
test dl, 0x10
jne 0x10040245
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10040243
cmp cl, 0x7d
jne 0x10040245
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003eab0
jmp 0x10040444
test eax, eax
je 0x100402b6
cmp byte [esi + 0x48], 0x42
jne 0x100402b6
push 4
lea ecx, [esi + 0x24]
call fcn.10021820
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100402aa
cmp byte [eax], 0x5c
jne 0x100402a8
inc eax
cmp eax, ecx
je 0x100402a8
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10040295
mov cl, byte [eax]
cmp cl, 0x28
je 0x100402a6
cmp cl, 0x29
je 0x100402a6
test dl, 0x10
jne 0x100402a8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100402a6
cmp cl, 0x7d
jne 0x100402a8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003eab0
jmp 0x10040444
mov ecx, esi
call fcn.10040dc0
jmp 0x1004043d
cmp eax, 0x5b
jne 0x10040367
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10040307
cmp byte [eax], 0x5c
jne 0x10040305
inc eax
cmp eax, ecx
je 0x10040305
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100402f2
mov dl, byte [eax]
cmp dl, 0x28
je 0x10040303
cmp dl, 0x29
je 0x10040303
test cl, 0x10
jne 0x10040305
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10040303
cmp cl, 0x7d
jne 0x10040305
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003eab0
mov ecx, esi
call fcn.10040d10
cmp dword [esi + 0x4c], 0x5d
jne 0x10040469
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004035b
cmp byte [eax], 0x5c
jne 0x10040359
inc eax
cmp eax, ecx
je 0x10040359
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10040346
mov dl, byte [eax]
cmp dl, 0x28
je 0x10040357
cmp dl, 0x29
je 0x10040357
test cl, 0x10
jne 0x10040359
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10040357
cmp cl, 0x7d
jne 0x10040359
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003eab0
jmp 0x1004043d
cmp eax, 0x28
jne 0x100403c9
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100403a8
cmp byte [eax], 0x5c
jne 0x100403a6
inc eax
cmp eax, ecx
je 0x100403a6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10040393
mov dl, byte [eax]
cmp dl, 0x28
je 0x100403a4
cmp dl, 0x29
je 0x100403a4
test cl, 0x10
jne 0x100403a6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100403a4
cmp cl, 0x7d
jne 0x100403a6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003eab0
mov ecx, esi
call fcn.10040e80
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.10040cb0
test bl, bl
je 0x10040444
jmp 0x1004043d
cmp eax, 0x5e
jne 0x100403e1
push 2
lea ecx, [esi + 0x24]
call fcn.10021820
mov ecx, esi
call fcn.10040040
jmp 0x10040444
cmp eax, 0x24
jne 0x100403f9
push 3
lea ecx, [esi + 0x24]
call fcn.10021820
mov ecx, esi
call fcn.10040040
jmp 0x10040444
cmp eax, 0x2a
je 0x10040477
cmp eax, 0x2b
je 0x10040477
cmp eax, 0x3f
je 0x10040477
cmp eax, 0x7b
je 0x10040477
cmp eax, 0x7d
jne 0x1004041b
test dword [esi + 0x50], 0x10000000
je 0x10040470
cmp eax, 0x5d
jne 0x10040429
test dword [esi + 0x50], 0x10000000
je 0x10040469
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10025c00
mov ecx, esi
call fcn.10040040
mov ecx, esi
call fcn.10040f40
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x100400c0
mov al, cl
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push 5
call fcn.100ab3be
push 4
call fcn.100ab3be
push 6
call fcn.100ab3be
push 0xa
call fcn.100ab3be
int3