Function at 0x34bd90
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x24
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 8]
xor eax, eax
mov dword [ecx + 4], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
push ebx
push ebp
lea ecx, [edx + ecx*2]
or ebx, 0xffffffff
push esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
xor ebp, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
nop
mov edx, dword [esp + 0x1c]
movzx esi, word [edx]
cmp esi, eax
jne 0x34be64
mov esi, dword [edi + 0x1c]
mov eax, edx
sub eax, dword [edi + 0xc]
sar eax, 1
mov dword [edi + 8], eax
test esi, esi
je 0x34c4dc
mov eax, dword [esi + 0xa4]
mov dword [esp + 0x2c], eax
call fcn.0034b820
mov edx, dword [esp + 0x34]
test al, al
je 0x34c4e0
mov eax, dword [edi + 0x1c]
mov ecx, dword [edx + 4]
mov esi, dword [edi + 8]
mov eax, dword [eax + 0xa4]
sub esi, ecx
sub eax, dword [esp + 0x2c]
je 0x34be42
sub ecx, eax
mov dword [edx + 4], ecx
test ebp, ebp
je 0x34be33
sub ebp, eax
jmp 0x34be3f
cmp dword [esp + 0x28], 0
je 0x34be3f
sub dword [edi], eax
sub dword [edi + 4], eax
sub dword [edi + 8], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [edx + 4]
mov ecx, dword [ecx + 0x28]
mov ecx, dword [ecx]
add eax, esi
lea eax, [ecx + eax*2]
mov dword [edi + 0xc], ecx
movzx esi, word [eax]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x34c4e0
test ebp, ebp
je 0x34bea5
push esi
push 0x3a8bf8
call dword [0x39a1c0]
add esp, 8
test eax, eax
je 0x34c15a
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sub eax, dword [edi + 0xc]
mov dword [edi], ebp
sar eax, 1
sub eax, ebp
lea edx, [eax + ebp - 1]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov dword [edi + 4], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
jmp 0x34bea9
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x14], 0
je 0x34c113
cmp esi, 0x3e
jne 0x34bf7f
mov eax, dword [esp + 0x10]
test al, 0xc0
jne 0x34bf9a
sub ecx, dword [edi + 0xc]
sar ecx, 1
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x18]
mov dword [edi + 8], eax
cmp ecx, 1
jne 0x34bf1b
mov dword [esp + 0x14], 0
cmp ebx, ecx
jne 0x34bf68
cmp dword [esp + 0x20], 0x2f
jne 0x34bf68
cmp dword [esp + 0x24], 0
je 0x34bf0e
mov eax, dword [esp + 0x24]
push eax
push str.0528597greek0500862cp8620520127cp3670500853cp853
call dword [0x39a1c0]
add esp, 8
test eax, eax
je 0x34bf68
mov eax, dword [esp + 0x34]
or dword [eax + 0xc], 0x10000
jmp 0x34bf68
dec eax
cmp eax, ecx
jle 0x34c15a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea edx, [ecx + ecx]
sub eax, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
add eax, 2
sub ecx, eax
sub dword [esp + 0x2c], 1
je 0x34bf60
mov dx, word [eax]
mov si, word [ecx + eax]
add eax, 2
cmp dx, si
je 0x34bf3e
add dword [esp + 0x1c], 2
xor eax, eax
jmp 0x34bdd0
mov dword [esp + 0x14], 0
test byte [esp + 0x10], 0x20
je 0x34c479
add dword [esp + 0x1c], 2
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x3c
jne 0x34bf96
cmp ebx, 2
je 0x34c590
cmp ebx, 0xffffffff
je 0x34c590
mov eax, dword [esp + 0x10]
test bl, 1
je 0x34c0d0
test al, 0xc0
je 0x34c005
cmp esi, 0x22
jne 0x34bfd5
test al, al
jns 0x34c0b8
add dword [esp + 0x1c], 2
xor eax, 0x80
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x27
jne 0x34c0b8
test al, 0x40
je 0x34c0b8
add dword [esp + 0x1c], 2
xor eax, 0x40
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x22
jne 0x34c036
test eax, 0x100
je 0x34c0b8
add dword [esp + 0x1c], 2
xor eax, 0x180
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x27
jne 0x34c063
test eax, 0x100
je 0x34c0b8
add dword [esp + 0x1c], 2
xor eax, 0x140
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x3d
jne 0x34c096
cmp dword [esp + 0x20], esi
je 0x34c096
test eax, 0x100
jne 0x34c09d
add dword [esp + 0x1c], 2
xor eax, 0x100
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
xor eax, eax
jmp 0x34bdd0
test eax, 0x100
je 0x34c0b8
push esi
push 0x3a899c
call dword [0x39a1c0]
add esp, 8
test eax, eax
jne 0x34c0b8
xor dword [esp + 0x10], 0x100
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], 2
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
xor eax, eax
jmp 0x34bdd0
test bl, 0x40
je 0x34c15a
cmp esi, 0x22
jne 0x34c0f7
test al, 0x40
jne 0x34c15a
add dword [esp + 0x1c], 2
xor eax, 0x80
mov dword [esp + 0x10], eax
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x27
jne 0x34c15a
test al, al
js 0x34c15a
add dword [esp + 0x1c], 2
xor eax, 0x40
mov dword [esp + 0x10], eax
xor eax, eax
jmp 0x34bdd0
mov edx, dword [esp + 0x10]
test edx, edx
je 0x34c493
test dl, 0x10
je 0x34c166
cmp esi, 0x3c
je 0x34c59d
push esi
push 0x3a899c
call dword [0x39a1c0]
add esp, 8
test eax, eax
jne 0x34c15a
xor dword [esp + 0x10], 0x10
mov ebx, 2
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0x3a8c18
add dword [esp + 0x1c], 2
xor eax, eax
jmp 0x34bdd0
test dl, 1
je 0x34c254
mov eax, 1
xor edx, eax
mov dword [esp + 0x10], edx
cmp esi, 0x60
ja 0x34c233
cmp esi, 0x40
jbe 0x34c191
cmp esi, 0x5b
jb 0x34c233
cmp esi, 0x5f
je 0x34c233
cmp esi, 0x3a
je 0x34c233
cmp esi, 0x2f
jne 0x34c1cb
add dword [esp + 0x1c], 2
mov ebp, ecx
sub ebp, dword [edi + 0xc]
mov dword [esp + 0x18], eax
sar ebp, 1
xor ebx, ebx
add ebp, eax
mov dword [esp + 0x14], 0x3a8c1c
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x21
jne 0x34c1e3
add dword [esp + 0x1c], 2
or edx, 2
mov dword [esp + 0x10], edx
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x3f
jne 0x34c210
add dword [esp + 0x1c], 2
mov ebp, ecx
sub ebp, dword [edi + 0xc]
mov dword [esp + 0x14], 0x3a8c20
sar ebp, 1
add ebp, eax
mov dword [esp + 0x18], 2
lea ebx, [esi - 0x2f]
xor eax, eax
jmp 0x34bdd0
mov ecx, dword [edi + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov dword [esp + 0x28], eax
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], 0x3a8c28
jmp 0x34c39f
add dword [esp + 0x1c], 2
mov ebp, ecx
sub ebp, dword [edi + 0xc]
mov dword [esp + 0x18], eax
mov ebx, eax
sar ebp, 1
mov dword [esp + 0x14], 0x3a8c1c
xor eax, eax
jmp 0x34bdd0
test dl, 2
je 0x34c34d
xor edx, 2
mov dword [esp + 0x10], edx
cmp esi, 0x2d
jne 0x34c27c
add dword [esp + 0x1c], 2
or edx, 4
mov dword [esp + 0x10], edx
xor eax, eax
jmp 0x34bdd0
test dl, 0x20
je 0x34c2d4
push esi
push 0x3a8c4c
call dword [0x39a1c0]
add esp, 8
mov dword [esp + 0x14], 0x3a8c1c
mov dword [esp + 0x18], 1
test eax, eax
je 0x34c2b5
add dword [esp + 0x1c], 2
mov ebx, 0x40
xor eax, eax
jmp 0x34bdd0
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], 0x3a8c54
jmp 0x34c420
cmp esi, 0x5b
jne 0x34c2ec
add dword [esp + 0x1c], 2
or edx, 8
mov dword [esp + 0x10], edx
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x44
jne 0x34c304
add dword [esp + 0x1c], 2
or edx, 0x20
mov dword [esp + 0x10], edx
xor eax, eax
jmp 0x34bdd0
mov edx, dword [edi + 8]
push 0xffffffffffffffff
push edx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], 0x3a8c7c
mov eax, dword [esp + 0x48]
add eax, 0x10
push eax
mov dword [esp + 0x2c], 0x3a8c1c
mov dword [esp + 0x30], 1
call fcn.00349320
add dword [esp + 0x34], 2
add esp, 0x18
or ebx, 0xffffffff
xor eax, eax
jmp 0x34bdd0
test dl, 4
je 0x34c3c6
xor edx, 4
mov dword [esp + 0x10], edx
cmp esi, 0x2d
jne 0x34c37d
add dword [esp + 0x1c], 2
mov dword [esp + 0x14], 0x3a8cac
mov dword [esp + 0x18], 3
lea ebx, [esi - 0xd]
xor eax, eax
jmp 0x34bdd0
mov ecx, dword [edi + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x2c], 1
mov dword [eax], 0x3a8cb4
mov edx, dword [esp + 0x48]
add edx, 0x10
push edx
mov dword [esp + 0x2c], 0x3a8c1c
call fcn.00349320
add dword [esp + 0x34], 2
add esp, 0x18
or ebx, 0xffffffff
xor eax, eax
jmp 0x34bdd0
test dl, 8
je 0x34c43f
xor edx, 8
mov dword [esp + 0x10], edx
cmp esi, 0x43
jne 0x34c3f6
add dword [esp + 0x1c], 2
mov dword [esp + 0x14], 0x3a8cdc
mov dword [esp + 0x18], 3
lea ebx, [esi - 0x3b]
xor eax, eax
jmp 0x34bdd0
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x28], 0x3a8c1c
mov dword [esp + 0x2c], 1
mov dword [eax], 0x3a8ce4
mov ecx, dword [esp + 0x48]
add ecx, 0x10
push ecx
call fcn.00349320
add dword [esp + 0x34], 2
add esp, 0x18
or ebx, 0xffffffff
xor eax, eax
jmp 0x34bdd0
test dl, 0x20
je 0x34c15a
cmp esi, 0x3c
jne 0x34c460
add dword [esp + 0x1c], 2
or edx, 1
mov dword [esp + 0x10], edx
xor eax, eax
jmp 0x34bdd0
cmp esi, 0x3e
jne 0x34c15a
mov eax, dword [esp + 0x1c]
sub eax, dword [edi + 0xc]
lea ebx, [esi + 2]
sar eax, 1
inc eax
mov dword [edi + 8], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 4]
mov dword [eax], ebx
mov dword [eax + 8], ecx
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 4
cmp esi, 0x3c
jne 0x34c4ac
add dword [esp + 0x1c], 2
mov dword [esp + 0x10], 1
xor eax, eax
jmp 0x34bdd0
push esi
push 0x3a899c
mov ebx, 4
call dword [0x39a1c0]
add esp, 8
test eax, eax
je 0x34c145
add dword [esp + 0x1c], 2
mov dword [esp + 0x10], 0x10
xor eax, eax
jmp 0x34bdd0
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 4]
cmp dword [edi + 8], eax
jne 0x34c503
pop esi
pop ebp
mov dword [edx + 8], 0
mov dword [edx], 0
mov eax, 0xfffffffe
pop ebx
add esp, 0x24
ret 4
cmp ebx, 4
je 0x34c479
cmp ebx, 2
je 0x34c479
test byte [esp + 0x10], 0x20
mov ecx, 0x3a8b24
jne 0x34c561
cmp ebx, 0x40
je 0x34c561
cmp ebx, 1
jne 0x34c532
mov ecx, 0x3a8b48
jmp 0x34c566
test ebx, ebx
jne 0x34c53d
mov ecx, 0x3a8b5c
jmp 0x34c566
cmp ebx, 8
jne 0x34c549
mov ecx, 0x3a8b6c
jmp 0x34c566
cmp ebx, 0x10
jne 0x34c555
mov ecx, 0x3a8b88
jmp 0x34c566
cmp ebx, 0x20
jne 0x34c566
mov ecx, 0x3a8bb8
jmp 0x34c566
mov ecx, 0x3a8b2c
mov edx, dword [esp + 0x34]
or ebx, 0xffffffff
push ebx
push eax
push 2
push ecx
mov eax, esp
push ecx
mov dword [eax], ecx
mov eax, esp
add edx, 0x10
push edx
mov dword [eax], 0x3a8bc8
call fcn.00349320
add esp, 0x18
jmp 0x34c479
sub ecx, dword [edi + 0xc]
sar ecx, 1
mov dword [edi + 8], ecx
jmp 0x34c479
sub ecx, dword [edi + 0xc]
mov ebx, 4
sar ecx, 1
mov dword [edi + 8], ecx
jmp 0x34c479