Function at 0x10001a40
Capabilities:
Get thread local storage value
Parse credit card information

Disassembly:
sub esp, 0x1c
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
xor esi, esi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [eax + 0x4d4]
mov ebp, eax
mov edx, 1
mov eax, dword [esp + 0x30]
mov ecx, 0xc
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [ebp + 0x4ac], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0x1c], esi
mov dword [ebp + 0x494], esi
mov dword [ebp + 0x490], esi
mov eax, dword [ebp + 0x4ac]
cmp dword [eax + 0x90], esi
mov dword [ebp + 0x498], edx
jne 0x10001aab
mov dword [ebp + 0x498], 0
mov eax, dword [ebp + 0x4ac]
cmp dword [eax + 0x8c], 0
jne 0x10001ac7
mov eax, 0xffffffcb
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
lea eax, [ebp + 0x4b4]
lea ecx, [ebp + 0x4b0]
push ecx
lea edx, [ebp + 0x49c]
mov dword [ebp + 0x49c], 2
push edx
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [ebp + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100023c2
mov eax, dword [ebp + 0x4a0]
cmp byte [eax], 0xd0
jne 0x10001b90
cmp byte [eax + 1], 0xcf
jne 0x10001b90
lea eax, [ebp + 0x4b4]
lea ecx, [ebp + 0x4b0]
push ecx
lea edx, [ebp + 0x49c]
mov dword [ebp + 0x49c], 2
push edx
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [ebp + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100023c2
mov eax, dword [ebp + 0x4a0]
cmp byte [eax], 0x11
jne 0x10001b90
cmp byte [eax + 1], 0xe0
jne 0x10001b90
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
mov edx, dword [ebp + 0x4a0]
mov cl, byte [edx]
cmp cl, 0x18
jne 0x10001bbc
push 0x9c
call fcn.10002780
add esp, 4
mov dword [ebp + 0x5d84], eax
test eax, eax
je 0x10001bdf
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
cmp cl, 0xff
je 0x10001bdf
cmp byte [edx + 1], 0xff
je 0x10001bdf
push 0xffffffffffffffff
call fcn.10002780
add esp, 4
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100023c2
mov eax, dword [ebp + 0x4a0]
lea ecx, [eax + 1]
mov dword [ebp + 0x4a0], ecx
cmp byte [eax], 0xff
jne 0x10001c53
cmp byte [ecx], 0xd8
jne 0x10001c53
lea eax, [ebp + 0x4b4]
lea ecx, [ebp + 0x4b0]
push ecx
lea edx, [ebp + 0x49c]
mov dword [ebp + 0x49c], 2
push edx
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [ebp + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100023c2
mov eax, dword [ebp + 0x4a0]
cmp byte [eax + 1], 0xe0
je 0x10001c6d
jmp 0x10001c63
cmp byte [ecx], 0xfe
jne 0x100023bd
dec ecx
mov dword [ebp + 0x4a0], ecx
mov dword [ebp + 0x494], 1
mov eax, dword [ebp + 0x4a0]
cmp byte [eax], 0
jne 0x10001cce
cmp byte [eax + 1], 0xff
jne 0x10001cce
add eax, 2
lea ecx, [ebp + 0x4b0]
push ecx
lea edx, [ebp + 0x49c]
push edx
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x49c], 1
mov dword [ebp + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [ebp + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x1000238d
dec dword [ebp + 0x4a0]
mov eax, dword [ebp + 0x4a0]
lea ecx, [eax + 1]
mov dword [ebp + 0x4a0], ecx
cmp byte [eax], 0xff
jne 0x1000239b
mov bl, byte [ecx]
cmp bl, 0xe0
jb 0x100021d2
cmp bl, 0xef
ja 0x100021d2
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp bl, 0xe0
jne 0x10001d17
call fcn.10002fc0
jmp 0x10002229
cmp bl, 0xe1
jne 0x10001f58
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ecx, [eax + 0x4b0]
mov ebx, eax
push ecx
lea eax, [ebx + 0x4b4]
mov dword [ebx + 0x49c], 2
lea edx, [ebx + 0x49c]
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4b0], 2
push edx
mov eax, dword [ebx + 0x4a0]
push 0xffffffffffffffff
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebx + 0x5d84], eax
test eax, eax
jne 0x10002229
cmp dword [ebx + 0x49c], 2
je 0x10001d8e
mov eax, 0xfffffff7
jmp 0x10002229
mov eax, dword [ebx + 0x4a0]
xor ecx, ecx
mov cl, byte [eax]
mov dword [ebx + 0x4a8], ecx
xor ecx, ecx
mov eax, dword [ebx + 0x4a0]
inc eax
mov dword [ebx + 0x4a0], eax
mov cl, byte [eax]
mov eax, dword [ebx + 0x4a8]
shl eax, 8
or ecx, eax
sub ecx, 2
mov dword [ebx + 0x4a8], ecx
mov dword [esp + 0x24], 0
mov eax, dword [ebx + 0x4a8]
cmp eax, 0xe
jb 0x10001f4a
lea eax, [esp + 0x24]
lea ecx, [ebx + 0x4b0]
push ecx
lea edx, [ebx + 0x49c]
push edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x49c], 6
mov dword [ebx + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [ebx + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebx + 0x5d84], eax
test eax, eax
jne 0x10002229
mov eax, dword [ebx + 0x49c]
lea esi, [esp + 0x24]
mov edi, 0x1002d028
mov ecx, 6
sub dword [ebx + 0x4a8], eax
repe cmpsb byte [esi], byte es:[edi]
mov eax, dword [ebx + 0x4a8]
push eax
je 0x10001e57
call fcn.1000e930
add esp, 4
jmp 0x10002229
call sub.LTKRN70N.dll_Ordinal_203
mov esi, eax
test esi, esi
jne 0x10001e6c
mov eax, 0xffffffff
jmp 0x10002229
lea ecx, [ebx + 0x4b0]
lea edx, [ebx + 0x49c]
push ecx
mov dword [ebx + 0x4a0], esi
mov eax, dword [ebx + 0x4a8]
push edx
push 0xffffffffffffffff
mov dword [ebx + 0x49c], eax
mov dword [ebx + 0x4b0], 2
mov eax, dword [ebx + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebx + 0x5d84], eax
test eax, eax
je 0x10001ec2
push esi
call sub.LTKRN70N.dll_Ordinal_208
mov eax, dword [ebx + 0x5d84]
jmp 0x10002229
mov eax, dword [ebx + 0x4ac]
or dword [eax + 0xe8], 0x100
mov eax, dword [ebx + 0x4ac]
cmp dword [eax + 0x90], 0
jne 0x10001f06
add eax, 0xe8
mov ecx, dword [ebx + 0x4a8]
push eax
push 3
push ecx
push esi
call fcn.1001f1a0
add esp, 0x10
push esi
call sub.LTKRN70N.dll_Ordinal_208
xor eax, eax
jmp 0x10002229
lea eax, [ebx + 0x4a0]
mov dword [ebx + 0x4a0], esi
push eax
mov ecx, dword [ebx + 0x4a8]
push ecx
mov eax, dword [ebx + 0x4ac]
push ecx
push 0xe1
call dword [eax + 0x90]
add esp, 0x10
mov dword [ebx + 0x5d84], eax
test eax, eax
je 0x10001ef9
push esi
call sub.LTKRN70N.dll_Ordinal_208
mov eax, dword [ebx + 0x5d84]
jmp 0x10002229
push eax
call fcn.1000e930
add esp, 4
jmp 0x10002229
lea eax, [edi + 0x4b4]
lea ecx, [edi + 0x4b0]
push ecx
lea edx, [edi + 0x49c]
mov dword [edi + 0x49c], 2
push edx
mov dword [edi + 0x4a0], eax
mov dword [edi + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [edi + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov esi, eax
mov dword [edi + 0x5d84], eax
test esi, esi
jne case.0x10002209.195
cmp dword [edi + 0x49c], 2
je 0x10001fba
mov esi, 0xfffffff7
jmp case.0x10002209.195
mov ecx, dword [edi + 0x4a0]
xor eax, eax
mov al, byte [ecx]
mov dword [edi + 0x4a8], eax
xor eax, eax
mov ecx, dword [edi + 0x4a0]
inc ecx
mov dword [edi + 0x4a0], ecx
mov al, byte [ecx]
mov ecx, dword [edi + 0x4a8]
shl ecx, 8
or eax, ecx
lea ecx, [edi + 0x4b0]
sub eax, 2
push ecx
lea edx, [edi + 0x49c]
mov dword [esp + 0x14], eax
push edx
mov dword [edi + 0x4a8], eax
push 0xffffffffffffffff
mov dword [edi + 0x49c], eax
mov dword [edi + 0x4b0], 4
lea eax, [edi + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov esi, eax
mov dword [edi + 0x5d84], eax
test esi, esi
jne case.0x10002209.195
cmp bl, 0xee
jne 0x10002089
cmp dword [edi + 0x49c], 5
jb 0x10002089
mov ecx, dword [edi + 0x4a0]
mov al, byte [ecx]
cmp al, 0x41
je 0x10002050
cmp al, 0x61
jne 0x10002089
mov al, byte [ecx + 1]
cmp al, 0x44
je 0x1000205b
cmp al, 0x64
jne 0x10002089
mov al, byte [ecx + 2]
cmp al, 0x4f
je 0x10002066
cmp al, 0x6f
jne 0x10002089
mov al, byte [ecx + 3]
cmp al, 0x42
je 0x10002071
cmp al, 0x62
jne 0x10002089
mov al, byte [ecx + 4]
cmp al, 0x45
je 0x1000207c
cmp al, 0x65
jne 0x10002089
mov eax, dword [edi + 0x4ac]
or dword [eax + 0xe8], 0x10
cmp dword [edi + 0x498], 0
jne 0x1000211f
mov eax, dword [edi + 0x4a8]
sub eax, dword [edi + 0x49c]
mov dword [edi + 0x4a8], eax
je 0x100020fc
lea eax, [edi + 0x4b0]
lea ecx, [edi + 0x49c]
mov dword [edi + 0x4a0], 0
mov dword [edi + 0x49c], 0
mov dword [edi + 0x4b0], 3
push eax
mov edx, dword [edi + 0x4a8]
push ecx
mov eax, dword [edi + 0x4a0]
push edx
push eax
call fcn.1000e960
add esp, 0x10
mov esi, eax
mov dword [edi + 0x5d84], eax
test esi, esi
jne case.0x10002209.195
cmp bl, 0xed
jne 0x100021ce
call fcn.10002950
mov esi, eax
mov dword [edi + 0x5d84], eax
test esi, esi
je 0x100021ce
jmp case.0x10002209.195
cmp dword [edi + 0x4a8], 0
jbe 0x100021ce
lea eax, [edi + 0x4a0]
mov ecx, dword [edi + 0x49c]
mov edx, dword [esp + 0x10]
push eax
push ecx
mov eax, dword [edi + 0x4ac]
push edx
push 0xfe
call dword [eax + 0x90]
add esp, 0x10
mov dword [edi + 0x5d84], eax
test eax, eax
jne 0x100021c6
mov eax, dword [edi + 0x4a8]
sub eax, dword [edi + 0x49c]
mov dword [edi + 0x4a8], eax
je 0x1000211f
lea ecx, [edi + 0x4b0]
lea edx, [edi + 0x49c]
mov dword [edi + 0x4a0], 0
mov eax, dword [edi + 0x4a8]
push ecx
push edx
mov dword [edi + 0x49c], eax
push 0xffffffffffffffff
lea eax, [edi + 0x4a0]
mov dword [edi + 0x4b0], 4
push eax
call fcn.1000e960
add esp, 0x10
mov dword [edi + 0x5d84], eax
test eax, eax
je 0x1000211f
mov esi, dword [edi + 0x5d84]
jmp case.0x10002209.195
mov esi, dword [edi + 0x5d84]
jmp case.0x10002209.195
xor esi, esi
jmp case.0x10002209.195
cmp bl, 0xf0
jb 0x100021f3
cmp bl, 0xfd
ja 0x100021f3
call fcn.10002950
mov dword [ebp + 0x5d84], eax
test eax, eax
je case.0x10002209.195
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
xor eax, eax
mov al, bl
sub eax, 0xc0
cmp eax, 0x3f
ja case.0x10002209.203
xor ecx, ecx
mov cl, byte [eax + 0x100023fc]
jmp dword [ecx*4 + 0x100023cc]
mov esi, 0xfffffff7
jmp case.0x10002209.195
mov eax, dword [ebp + 0x4ac]
or dword [eax + 0xe8], 4
call fcn.10003490
mov esi, eax
cmp dword [esp + 0x14], 0
je 0x1000227f
lea eax, [ebp + 0x4b4]
lea ecx, [ebp + 0x4b0]
push ecx
lea edx, [ebp + 0x49c]
mov dword [ebp + 0x49c], 2
push edx
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x4b0], 2
push 0xffffffffffffffff
mov eax, dword [ebp + 0x4a0]
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100023af
test esi, esi
jne 0x1000229d
cmp dword [esp + 0x14], 0
jne 0x10001c6d
test esi, esi
jne 0x1000229d
cmp dword [esp + 0x1c], 2
jb 0x100023c2
mov eax, dword [ebp + 0x4ac]
lea ecx, [eax + 0x5c]
add eax, 0x4c
push ecx
push eax
call fcn.10002ac0
mov ecx, dword [esp + 0x38]
add esp, 8
mov eax, esi
pop ebp
mov dword [ecx + 0x110], 1
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
call fcn.10003c70
mov esi, eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x18], 0
je case.0x10002209.195
dec dword [esp + 0x20]
jne case.0x10002209.195
call fcn.10002950
mov dword [ebp + 0x5d84], eax
test eax, eax
je case.0x10002209.195
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
mov eax, dword [ebp + 0x4ac]
lea ecx, [eax + 0x5c]
add eax, 0x4c
push ecx
push eax
call fcn.100037b0
mov dword [esp + 0x1c], 0
add esp, 8
mov esi, eax
jmp case.0x10002209.195
call fcn.10003f60
mov esi, eax
inc dword [esp + 0x1c]
jmp case.0x10002209.195
call fcn.100042e0
jmp 0x10002229
mov eax, dword [ebp + 0x4ac]
add eax, 0x10
push eax
call fcn.100041d0
add esp, 4
jmp 0x10002229
lea eax, [esp + 0x18]
push eax
call fcn.10002b90
add esp, 4
mov esi, eax
cmp dword [esp + 0x18], 0
je case.0x10002209.195
mov dword [esp + 0x20], 4
jmp case.0x10002209.195
call fcn.10002950
jmp 0x10002229
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
mov esi, 0xfffffff7
jmp 0x1000228e
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret