Function at 0x71cf90c3
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
mov ebx, dword [ebp + 8]
mov edx, ecx
push esi
push edi
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov al, byte [ebx + 1]
mov byte [esp + 0xd], al
movzx eax, al
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], ecx
mov al, byte [eax + 0x653b5f0]
shr al, 2
and al, 1
mov byte [esp + 0xc], al
mov al, byte [ebx]
movzx edi, al
mov byte [esp + 0xe], al
mov al, byte [edi + 0x653b450]
mov byte [esp + 0xf], al
movzx eax, al
mov dword [esp + 0x34], eax
test al, 3
je 0x71cf91fe
cmp edi, 9
ja 0x71d0252a
je 0x71d3029e
sub edi, 1
jne 0x71d06651
xor edi, edi
mov ecx, edx
inc edi
push ebx
mov dword [esp + 0x18], edi
call fcn.71d01b28
test al, al
je 0x71d0c63a
mov eax, dword [ebp + 8]
xor esi, esi
inc esi
xor ebx, ebx
mov dword [esp + 0x10], esi
inc ebx
imul ecx, dword [eax + 0x24], 0x60
mov eax, dword [esp + 0x1c]
add ecx, dword [eax + 0x1c]
call fcn.71cf29ff
test al, al
jne 0x71d28e46
mov ecx, dword [esp + 0x10]
mov al, byte [esp + 0xd]
mov edx, dword [esp + 0x1c]
sub al, 0xa
cmp al, 1
jbe 0x71d376b9
cmp byte [esp + 0xc], 0
jne 0x71d30285
mov esi, dword [esp + 0x14]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ecx + 0x18bc]
cmp eax, dword [ecx + 0x18bc]
jne 0x71d58692
mov al, byte [ecx + 0x18bc]
mov byte [edi + 8], al
mov eax, dword [ecx + 0x18bc]
cmp eax, dword [ecx + 0x1544]
ja 0x71d3027a
mov eax, dword [esp + 0x18]
mov ecx, 0xff
mov byte [edi + 6], al
mov eax, dword [esp + 0x10]
cmp eax, ecx
jg 0x71d347b1
movzx eax, al
mov byte [edi + 2], al
cmp ebx, ecx
jg 0x71cf91f0
movzx ecx, bl
mov byte [edi + 3], cl
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test al, 0x3c
je 0x71d02550
test byte [esp + 0xf], 8
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
je 0x71cf93ba
mov esi, dword [ebx + 0x28]
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], esi
mov ebx, ecx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x71d15ae6
test esi, esi
je 0x71d00d53
mov ebx, dword [esp + 0x24]
xor eax, eax
inc eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
mov al, byte [ebx + 1]
sub al, 0xa
push 4
pop ecx
cmp al, 1
jbe 0x71d37650
push 5
pop eax
cmp edi, 0x25
jbe 0x71d09e9e
cmp edi, 0x26
je 0x71d38b6d
cmp edi, 0x2d
ja 0x71d0ebc6
mov eax, dword [esp + 0x34]
mov ecx, edx
and eax, 0x40
mov dword [esp + 0x3c], eax
push ebx
jne 0x71d06607
call fcn.71cf90c3
mov esi, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], esi
test eax, eax
js 0x71d38a1e
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push esi
call fcn.71cf90c3
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x18]
movzx eax, byte [ebx + 6]
or ecx, eax
cmp byte [esp + 0xe], 0x2d
mov dword [esp + 0x18], ecx
je 0x71cf92da
movzx eax, byte [esi + 6]
or ecx, eax
mov dword [esp + 0x18], ecx
movzx ecx, byte [esi + 2]
movzx esi, byte [ebx + 2]
add esi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add esi, ecx
movzx ebx, byte [ebx + 3]
add ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], esi
movzx ecx, byte [eax + 3]
mov esi, dword [esp + 0x14]
add ebx, ecx
cmp byte [esp + 0xc], 0
jne 0x71d3c1de
cmp dword [esp + 0x3c], 0
jne 0x71d0667e
test byte [esp + 0x34], 0x10
jne 0x71d0ec45
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov dl, byte [esp + 0xe]
cmp dl, 0x2a
jb 0x71cf9348
cmp dl, 0x2c
jbe 0x71d1e50a
sub dl, 0x38
cmp dl, 2
jbe 0x71d1e50a
mov edx, dword [esp + 0x24]
test esi, esi
je 0x71d2035a
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x3c], eax
and eax, 0x20
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
jne 0x71d0824e
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], eax
cmp byte [esp + 0x30], 0
jne 0x71cf9395
cmp dword [esp + 0x38], 0
jne 0x71d39705
cmp esi, dword [esp + 0x28]
setb al
test al, al
jne 0x71d0df09
test byte [ecx + 0x10], 0x20
jne 0x71d0825b
mov eax, dword [esp + 0x28]
cmp esi, 1
jb 0x71d109d1
cmp esi, eax
jne 0x71cf9196
inc esi
jmp 0x71cf9196
mov esi, ecx
mov dword [esp + 0x20], ecx
jmp 0x71cf9223
mov dword [esp + 0x14], ecx
jmp 0x71cf9187
inc esi
xor ebx, ebx
push eax
mov ecx, edx
mov dword [esp + 0x14], esi
inc ebx
call fcn.71cf90c3
mov ecx, dword [esp + 0x24]
mov esi, eax
mov dword [esp + 0x14], esi
movzx eax, byte [ecx + 6]
mov dword [esp + 0x18], eax
cmp edi, 0x46
ja 0x71d0c69f
je 0x71d3593b
cmp edi, 0x18
jbe 0x71d10ac7
sub edi, 0x1c
je 0x71d1a6e8
sub edi, 1
jne 0x71d35932
test esi, esi
je 0x71d28b82
mov edi, esi
mov eax, dword [ebp + 8]
push 3
pop ecx
push 2
mov al, byte [eax + 1]
pop ebx
sub al, bl
mov dword [esp + 0x10], ecx
cmp al, 5
jbe 0x71d16131
mov esi, dword [esp + 0x10]
cmp byte [esp + 0xc], 0
jne 0x71d3f851
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
shr eax, 0x1f
and al, 1
mov byte [esp + 0xc], al
jne 0x71d1e7bf
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov al, byte [esi]
mov byte [esp + 0xf], al
cmp al, 0x20
jne 0x71d1466d
push 1
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x23]
push eax
xor eax, eax
push eax
push eax
push eax
push esi
call fcn.71d094db
test al, al
je 0x71d25d61
or dword [esi + 0x10], 0x80000000
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
test edx, edx
je 0x71d00e4e
movzx eax, byte [edx + 2]
add ecx, eax
movzx eax, byte [edx + 3]
mov dword [esp + 0x10], ecx
add ebx, eax
mov edi, dword [esp + 0x3c]
test edi, edi
jne 0x71d1ebde
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x71d00e6e
movsx eax, cl
cmp eax, ecx
jne 0x71d1b4f0
inc ebx
lea eax, [esp + 0xc]
xor esi, esi
push eax
push esi
push edx
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.71d09f39
lea eax, [esp + 0xc]
push eax
push 1
push esi
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.71d09f39
lea eax, [esp + 0xc]
push eax
push 1
push esi
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.71d09f39
cmp dword [esp + 0x34], 1
ja 0x71d1ec37
mov edx, dword [esp + 0x2c]
cmp edx, edi
je 0x71d30827
mov ecx, edx
call fcn.71d09d42
cmp eax, edi
je 0x71d30827
mov esi, dword [esp + 0x30]
cmp edx, esi
jne 0x71d3fbc3
test edi, edi
je 0x71cf9192
mov ecx, dword [esp + 0x28]
mov al, byte [ecx]
cmp al, 0x22
je 0x71d00f00
cmp al, 0x2a
jne 0x71cf9192
mov edx, dword [ecx + 0x24]
mov al, byte [edx]
cmp al, 0xc
jne 0x71d586b2
mov esi, 0x80000000
mov eax, edx
or dword [ecx + 0x10], esi
cmp byte [eax], 0x22
mov edi, dword [ebp + 8]
je 0x71d2e43e
mov esi, dword [esp + 0x14]
jmp 0x71cf9199
sub edi, 0xa
je 0x71d58686
sub edi, 0x4d
je 0x71d1a8ed
sub edi, 1
jne 0x71d15db9
mov dword [esp + 0x10], ecx
mov ebx, ecx
jmp 0x71d00d4a
sub edi, 0x10
je 0x71d1e755
sub edi, 5
je 0x71d2ab41
sub edi, 0x35
je 0x71d48a6c
sub edi, 1
jne 0x71d5870a
mov edi, dword [esp + 0x1c]
mov esi, ecx
mov ecx, dword [ebp + 8]
push 5
pop edx
push 2
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], eax
pop ebx
test eax, eax
jne 0x71d12a2d
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x71d025e8
mov ecx, dword [edi + 0x18bc]
push 0
mov dword [esp + 0x40], ecx
mov ecx, edi
push eax
call fcn.71d03a5b
cmp esi, eax
jb 0x71d10a16
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 0x28]
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
add ebx, eax
mov dword [esp + 0x10], edx
movzx eax, byte [ecx + 6]
or dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
mov dword [edi + 0x18bc], eax
mov eax, dword [ecx + 0x2c]
test eax, eax
je 0x71d02638
mov ecx, dword [edi + 0x18bc]
push 1
mov dword [esp + 0x40], ecx
mov ecx, edi
push eax
call fcn.71d03a5b
cmp esi, eax
jae 0x71d02609
mov esi, eax
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
add ebx, eax
mov dword [esp + 0x10], edx
movzx eax, byte [ecx + 6]
or dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
mov dword [edi + 0x18bc], eax
mov al, byte [ecx + 0x42]
and al, 7
cmp al, 2
je 0x71d3286d
add ebx, 3
mov eax, dword [ecx + 0x10]
inc esi
and eax, 0x30000000
jne 0x71d133ce
cmp eax, 0x10000000
mov eax, dword [esp + 0x18]
je 0x71d21926
test dword [ecx + 0x10], 0x1000000
jne 0x71d02680
add edx, 9
add esi, 5
or eax, 7
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
cmp byte [esp + 0xc], 0
je 0x71cf9196
push ecx
mov ecx, edi
call fcn.71d3025c
jmp 0x71cf9196
mov edx, dword [esp + 0x10]
jmp 0x71d0c661
cmp edi, 0x50
jne 0x71d042b0
push 0xa
pop edx
push 5
jmp 0x71d0c6ac
call fcn.71cf90c3
cmp byte [esp + 0xc], 0
mov esi, eax
mov dword [esp + 0x14], esi
jne 0x71d3c3cb
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ecx, ebx
push eax
call fcn.71d01b28
test al, al
jne 0x71d0f327
cmp byte [esp + 0xe], 0x2d
mov ebx, dword [esp + 0x24]
je 0x71cf92a9
movzx eax, byte [ebx + 2]
add dword [esp + 0x10], eax
jmp 0x71cf92a9
sub edi, 1
je 0x71d1a8ed
sub edi, 5
jne 0x71d2013e
movsx eax, byte [ebx + 0x24]
cmp eax, dword [ebx + 0x24]
jne 0x71d0bc19
xor eax, eax
inc eax
mov ebx, eax
mov dword [esp + 0x10], eax
jmp 0x71d00d4a
mov eax, dword [esp + 0x24]
mov cl, byte [eax]
test cl, cl
je 0x71cf9323
cmp cl, 2
ja 0x71d0b39b
mov ecx, dword [ebp + 8]
mov byte [esp + 0x30], 1
or dword [ecx + 0x10], 0x20
jmp 0x71cf9326
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], edx
jmp 0x71cf9374
mov eax, esi
mov esi, dword [esp + 0x28]
jmp 0x71cf93a3
je 0x71d38b8a
cmp edi, 0x20
jb 0x71cf927e
cmp edi, 0x21
jbe 0x71d09f0f
cmp edi, 0x22
jne 0x71d38b5f
cmp byte [esp + 0xc], 0
jne 0x71d3c9a7
mov eax, dword [ebp + 8]
mov esi, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], 1
mov eax, dword [eax + 0x10]
and eax, 0x10000000
jne 0x71d422af
cmp byte [esp + 0xd], 0xa
je 0x71d09ef4
test eax, eax
je 0x71cf927e
add esi, ecx
mov dword [esp + 0x18], 5
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], 0xfffffffd
jmp 0x71cf927e
cmp byte [esp + 0xc], 0
jne 0x71d3c9a7
mov eax, dword [ebp + 8]
test dword [eax + 0x10], 0x10000000
je 0x71cf927e
add dword [esp + 0x10], 3
add dword [esp + 0x2c], 3
jmp 0x71cf927e
cmp cl, 0x1d
jne 0x71cf9323
mov eax, dword [eax + 0x24]
test byte [eax + 0x10], 0x1f
mov eax, dword [esp + 0x20]
jne 0x71d1fe88
test byte [eax + 0x10], 1
jne 0x71d1fe88
movzx eax, byte [eax]
test byte [eax + 0x653b450], 2
jne 0x71cf9323
jmp 0x71d06695
mov dword [esp + 0x10], 1
push 4
pop ebx
jmp 0x71d00d4a
mov al, byte [esp + 0xd]
push 3
pop ecx
push 2
pop ebx
sub al, bl
mov dword [esp + 0x10], ecx
cmp al, 5
ja 0x71cf9175
push 4
pop ecx
push 3
mov dword [esp + 0x14], ecx
pop ebx
jmp 0x71cf9175
mov ecx, dword [esp + 0x24]
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
mov dword [esp + 0x10], edx
add ebx, eax
jmp 0x71cf9196
cmp edi, 0x47
jne 0x71d042e8
push 2
pop edx
push edx
pop ebx
jmp 0x71d0c661
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
shr eax, 4
not al
and eax, 0xffffff01
test byte [ecx + 0x10], 0xf
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], eax
jne 0x71d1624b
test al, al
je 0x71cf9395
cmp edi, 0x40
ja 0x71d26b7b
cmp edi, 0x3b
jae 0x71d1f58f
cmp edi, 0x20
jne 0x71d36dc0
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x28], edx
cmp byte [edx + 8], 0
jne 0x71d0df6c
cmp byte [eax + 8], 0
je 0x71cf9395
mov eax, dword [esp + 0x1c]
mov byte [eax + 0x714], 1
jmp 0x71cf9395
cmp edi, 0x2f
jbe 0x71d09f0f
cmp edi, 0x41
je 0x71d108fd
cmp edi, 0x43
jne 0x71cf927e
mov esi, dword [edx + 0x18bc]
mov ecx, edx
push ebx
call fcn.71cf90c3
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
push edi
mov dword [eax + 0x18bc], esi
call fcn.71cf90c3
mov esi, dword [esp + 0x14]
cmp esi, eax
jb 0x71d10224
jne 0x71d0ec18
inc esi
movzx eax, byte [ebx + 6]
movzx edx, byte [edi + 6]
movzx ecx, byte [edi + 2]
or edx, eax
movzx eax, byte [ebx + 2]
movzx ebx, byte [edi + 3]
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
movzx eax, byte [eax + 3]
jmp 0x71d0c673
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + 1]
test byte [eax + 0x653b5f0], 4
jne 0x71d4485c
mov eax, dword [esp + 0x24]
mov al, byte [eax + 1]
sub al, 0xa
cmp al, 1
mov eax, dword [esp + 0x10]
jbe 0x71d37cbc
mov ecx, dword [ebp + 8]
test dword [ecx + 0x10], 0x40000000
jne 0x71cf9326
add eax, 3
mov dword [esp + 0x10], eax
jmp 0x71cf9326
mov eax, dword [esp + 0x20]
mov ecx, ebx
push eax
call fcn.71cf90c3
cmp byte [esp + 0xe], 0x2d
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
jne 0x71d247a9
movzx edx, byte [eax + 2]
movzx ebx, byte [eax + 3]
mov dword [esp + 0x10], edx
jmp 0x71cf9302
mov esi, eax
jmp 0x71d0ec18
mov esi, dword [edx + 0x18bc]
mov ecx, edx
push ebx
call fcn.71cf90c3
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov edi, dword [esp + 0x20]
push edi
mov dword [eax + 0x18bc], esi
call fcn.71cf90c3
jmp 0x71d10224
mov esi, eax
jmp 0x71cf9196
mov esi, eax
jmp 0x71d025b9
je 0x71d1ad7f
sub edi, 0xb
je 0x71d2fd0c
sub edi, ebx
jne 0x71d24241
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp dword [eax + 0x10], ecx
jge 0x71d10ae9
inc esi
mov edx, ecx
mov ebx, ecx
jmp 0x71d0c661
push eax
mov ecx, edi
call fcn.71cf90c3
test eax, eax
jne 0x71d193f1
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
movzx edx, byte [eax + 2]
movzx ebx, byte [eax + 3]
add edx, 5
movzx eax, byte [eax + 6]
add ebx, 3
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
jmp 0x71d02596
add edx, 6
add ebx, 2
mov dword [esp + 0x10], edx
jmp 0x71d02657
push esi
call fcn.71d01b28
test al, al
jne 0x71cf9192
cmp byte [esp + 0xf], 7
jne 0x71d25d61
movzx eax, byte [esi + 3]
add ebx, eax
jmp 0x71cf9192
mov esi, ecx
jmp 0x71cf9196
mov dword [esp + 0x10], eax
mov ebx, eax
jmp 0x71cf9187
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
jmp 0x71d15cfa
push 4
pop esi
mov dword [esp + 0x10], esi
mov ebx, ecx
jmp 0x71d00dc7
mov eax, dword [esp + 0x14]
test byte [eax + 0x10], 0xf
jne 0x71cf9395
mov edx, dword [esp + 0x2c]
mov al, byte [esp + 0x34]
test byte [edx + 0x10], 3
mov edx, dword [esp + 0x24]
je 0x71d0df2f
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
mov al, byte [eax + 0x653b450]
and al, 1
neg al
sbb al, al
and al, byte [esp + 0x34]
jmp 0x71d0df2f
mov esi, eax
jmp 0x71d12a3d
movzx eax, byte [ecx + 1]
test byte [eax + 0x653b5f0], 4
jne 0x71d586cb
xor ebx, ebx
xor edx, edx
inc ebx
jmp 0x71d0c661
mov al, byte [esp + 0xd]
xor edi, edi
push 4
inc edi
mov dword [esp + 0x14], 3
sub al, 2
mov dword [esp + 0x18], edi
pop ecx
mov ebx, ecx
cmp al, 5
ja 0x71cf9187
mov dword [esp + 0x10], ecx
push 5
pop ebx
jmp 0x71cf9187
push 2
xor edx, edx
pop ebx
inc edx
cmp byte [esp + 0xc], 0
push 6
pop edi
jne 0x71d3c102
movzx eax, byte [ecx + 1]
test byte [eax + 0x653b5f0], 4
jne 0x71d3c102
mov ecx, dword [ebp + 8]
mov ah, byte [ecx + 1]
mov al, ah
sub al, 0xa
cmp al, 1
jbe 0x71d3a696
test dword [ecx + 0x10], 0x10000000
je 0x71d0c661
add edx, edi
add ebx, edi
jmp 0x71d0c661
add ebx, 4
jmp 0x71d00e6e
cmp byte [eax], 7
je 0x71cf9348
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add edx, 3
or eax, 2
mov dword [esp + 0x10], edx
cmp byte [ecx + 1], 0xa
mov dword [esp + 0x18], eax
jne 0x71cf9348
add dword [esp + 0x28], 5
add edx, 9
add esi, 5
mov dword [esp + 0x10], edx
add ebx, 4
or eax, 7
mov dword [esp + 0x18], eax
jmp 0x71cf9348
mov edi, dword [ebx + 0x24]
xor esi, esi
inc esi
cmp dword [ebx + 0x10], ecx
jl 0x71d3905f
movzx eax, byte [edi + 6]
movzx ebx, byte [edi + 3]
movzx ecx, byte [edi + 2]
add ebx, 2
mov edi, dword [ebp + 8]
add ecx, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
mov eax, dword [edi + 0x28]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x71cf9199
push eax
mov ecx, edx
call fcn.71cf90c3
cmp esi, eax
jb 0x71d58703
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx + 6]
or dword [esp + 0x18], eax
movzx eax, byte [ecx + 2]
add dword [esp + 0x10], eax
movzx eax, byte [ecx + 3]
add ebx, eax
jmp 0x71cf9199
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x71d00de7
mov ecx, dword [esp + 0x1c]
push eax
call fcn.71cf90c3
cmp edi, eax
jb 0x71d586a9
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx + 2]
add eax, 3
add esi, eax
movzx eax, byte [ecx + 3]
add eax, 3
mov dword [esp + 0x10], esi
add ebx, eax
jmp 0x71d00de7
movzx eax, byte [edi + 2]
add ecx, eax
movzx eax, byte [edi + 3]
mov dword [esp + 0x10], ecx
add ebx, eax
jmp 0x71d00e5a
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x30]
je 0x71d36b0c
cmp byte [eax], 0x2a
jne 0x71d36b0c
mov esi, 0x80000000
or dword [eax + 0x10], esi
cmp byte [esp + 0xc], 0
je 0x71cf9192
mov eax, dword [eax + 0x24]
jmp 0x71d00f17
mov al, byte [edi + 0x653e909]
mov byte [ecx], al
jmp 0x71d0df52
mov ecx, dword [ebp + 8]
jmp 0x71cf932a
sub edi, 1
jne 0x71d15db9
push 8
mov dword [esp + 0x14], 2
jmp 0x71d0bc23
cmp dword [esp + 0x28], esi
jne 0x71cf9354
movzx eax, byte [edx]
test byte [eax + 0x653b450], 1
je 0x71cf9354
movzx eax, byte [ecx]
mov al, byte [eax + 0x653b450]
cmp al, 0x80
jae 0x71d20389
test al, 0x10
je 0x71cf9354
mov dword [esp + 0x28], 1
jmp 0x71cf9354
or eax, 1
mov dword [esp + 0x18], eax
jmp 0x71d02666
sub edi, ebx
je 0x71d2fd0c
dec edi
sub edi, ebx
jne 0x71d3e8fa
push 3
inc esi
mov dword [esp + 0x18], esi
pop esi
push 2
pop ebx
push ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], esi
call fcn.71d01b28
mov esi, dword [esp + 0x14]
test al, al
jne 0x71cf9196
jmp 0x71d042b0
movzx ecx, byte [eax + 6]
or dword [esp + 0x18], ecx
jmp 0x71d0f346
mov esi, dword [esp + 0x14]
jmp 0x71d042b0
cmp edi, 0x42
jb 0x71d26b9b
cmp edi, 0x43
jbe 0x71cf9395
cmp edi, 0x46
je 0x71cf9395
cmp edi, 0x48
je 0x71cf9395
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x3c]
jne 0x71d459da
or eax, 0x20
mov dword [ecx + 0x10], eax
cmp byte [edx + 8], 0
jne 0x71d0df6c
mov eax, dword [esp + 0x20]
jmp 0x71d0df62
xor edi, edi
inc edi
mov dword [esp + 0x14], edi
jmp 0x71d00da9
push 2
pop ecx
push ecx
jmp 0x71d0c657
push dword [ebx + 0x24]
mov ecx, edx
call fcn.71cf90c3
push dword [ebx + 0x28]
mov esi, dword [esp + 0x20]
mov edi, eax
mov eax, dword [ebx + 0x24]
mov ecx, esi
mov dword [esp + 0x18], edi
movzx eax, byte [eax + 3]
mov dword [esp + 0x34], eax
call fcn.71cf90c3
cmp edi, eax
jb 0x71d586ef
mov eax, dword [ebx + 0x28]
mov ecx, esi
push dword [ebx + 0x2c]
movzx eax, byte [eax + 3]
add dword [esp + 0x34], eax
call fcn.71cf90c3
cmp edi, eax
jb 0x71d586fa
mov eax, dword [ebx + 0x2c]
mov esi, 0xff
mov ecx, dword [esp + 0x30]
add ecx, 5
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], 1
movzx ebx, byte [eax + 3]
add ebx, ecx
jmp 0x71cf9192
mov dword [esp + 0x10], 3
push 4
jmp 0x71d1a915
or dword [eax + 0x10], esi
jmp 0x71d00f23
inc esi
jmp 0x71d042b0
mov dword [ecx + 0x1544], eax
jmp 0x71cf91cb
push ecx
mov ecx, edx
call fcn.71d3025c
jmp 0x71cf9192
mov eax, dword [ebx + 0x24]
or eax, dword [ebx + 0x28]
mov dword [esp + 0x14], ecx
je 0x71d302c0
cmp dword [ebx + 0x24], ecx
jne 0x71d2af94
cmp dword [ebx + 0x28], 0x3ff00000
jne 0x71d2af94
xor eax, eax
inc eax
jmp 0x71d15cfa
test edi, edi
je 0x71cf9192
mov al, byte [edx]
cmp al, 0x22
je 0x71d3083d
cmp al, 0x2a
jne 0x71cf9192
mov ecx, dword [edx + 0x24]
mov al, byte [ecx]
cmp al, 0xc
jne 0x71d3087d
mov esi, 0x80000000
mov eax, ecx
or dword [edx + 0x10], esi
jmp 0x71d00f17
cmp al, 0x22
jne 0x71cf9192
mov eax, dword [ecx + 0x24]
cmp byte [eax], 0xc
je 0x71d30846
jmp 0x71cf9192
mov eax, dword [ecx + 0x4c]
mov ecx, edi
push eax
mov dword [esp + 0x40], eax
call fcn.71cf90c3
cmp esi, eax
jb 0x71d3f02e
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
add edx, 3
movzx eax, byte [ecx + 2]
add edx, eax
movzx eax, byte [ecx + 3]
add ebx, eax
mov dword [esp + 0x10], edx
movzx eax, byte [ecx + 6]
or dword [esp + 0x18], eax
mov ecx, dword [ebp + 8]
jmp 0x71d02648
mov eax, ecx
jmp 0x71cf91e6
sub edi, 1
jne 0x71d35ba9
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
push dword [ebx + 0x24]
call fcn.71cf90c3
mov ecx, dword [ebx + 0x24]
mov esi, eax
movzx eax, byte [ecx + 6]
or dword [esp + 0x18], eax
movzx edx, byte [ecx + 2]
movzx ebx, byte [ecx + 3]
inc edx
inc ebx
jmp 0x71d0c661
sub edi, 1
jne 0x71d042b0
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
push dword [ebx + 0x24]
call fcn.71cf90c3
mov ecx, dword [ebx + 0x24]
mov esi, eax
movzx eax, byte [ecx + 6]
or dword [esp + 0x18], eax
movzx edx, byte [ecx + 2]
movzx ebx, byte [ecx + 3]
jmp 0x71d0c661
mov eax, dword [esp + 0x28]
jmp 0x71d1ec4e
cmp edi, 0x21
je 0x71d36de5
cmp edi, 0x22
je 0x71d0df52
cmp edi, 0x26
jbe 0x71d26b9b
cmp edi, 0x29
jbe 0x71d0df52
jmp 0x71d26b9b
cmp byte [esp + 0xc], 0
je 0x71cf9395
jmp 0x71d26b9b
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], ecx
jmp 0x71cf9260
add ecx, ecx
add ebx, ebx
mov dword [esp + 0x10], ecx
jmp 0x71cf9187
add eax, eax
add ebx, ebx
mov dword [esp + 0x10], eax
jmp 0x71d0ec6f
sub esi, eax
and dword [esp + 0x28], 0
mov dword [esp + 0x14], esi
jmp 0x71cf92a9
cmp edi, 0x23
je 0x71d38b8a
cmp edi, 0x24
jne 0x71cf927e
cmp byte [esi], 7
jne 0x71d38b8a
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x71d38b8a
mov eax, ecx
neg eax
and eax, ecx
cmp ecx, eax
je 0x71cf927e
push 5
pop eax
cmp byte [esp + 0xc], 0
jne 0x71d3eaff
mov dword [esp + 0x10], 0x14
mov dword [esp + 0x18], eax
jmp 0x71d09f02
push edi
mov ecx, edx
call fcn.71cf90c3
mov edx, dword [esp + 0x1c]
lea esi, [eax + 1]
jmp 0x71d1e764
cmp esi, dword [esp + 0x28]
seta al
jmp 0x71cf938d
movzx eax, ah
test byte [eax + 0x653b5f0], 2
jne 0x71d586a0
add edx, 2
add ebx, 3
jmp 0x71d1adb6
movzx eax, byte [ecx + 1]
mov edx, edi
mov cl, byte [esp + 0xc]
mov ebx, edi
mov dword [esp + 0x10], edx
mov al, byte [eax + 0x653b5f0]
shr al, 2
and al, 1
cmp cl, al
je 0x71d1ada4
mov eax, dword [esp + 0x1c]
test cl, cl
je 0x71d3c595
push ecx
mov ecx, eax
call fcn.71d3025c
mov edx, dword [esp + 0x10]
jmp 0x71d1ada4
mov ecx, dword [esp + 0x1c]
push 1
call fcn.71d3c071
jmp 0x71cf930d
dec byte [ebx + 8]
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
push 1
call fcn.71d3c071
jmp 0x71d06621
push 1
mov ecx, eax
call fcn.71d3c071
jmp 0x71d3c139
mov dword [esp + 0x10], eax
jmp 0x71cf927e
dec edi
sub edi, ebx
jne 0x71d042b0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c], 5
jne 0x71d2fd0c
cmp byte [eax + 1], 8
jne 0x71d2fd0c
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.71d3c071
jmp 0x71d2fd0c
mov dword [esp + 0x10], 0x24
jmp 0x71cf927e
mov esi, eax
jmp 0x71d32884
push ecx
mov ecx, dword [esp + 0x20]
call fcn.71d3025c
mov eax, dword [ebp + 8]
cmp byte [eax + 1], 0xd
jne 0x71d00dd5
inc dword [esp + 0x10]
mov esi, dword [esp + 0x10]
jmp 0x71d00dd5
mov ecx, edx
call fcn.71d09d42
cmp eax, esi
je 0x71d00ee6
jmp 0x71cf9192
add dword [esp + 0x2c], 3
push 7
pop esi
mov dword [esp + 0x10], esi
jmp 0x71d09ee5
mov ecx, dword [esp + 0x1c]
push 2
call fcn.71d3c071
or dword [esp + 0x18], 1
inc esi
inc dword [esp + 0x28]
jmp 0x71d0ec5a
and eax, 0xffffffdf
jmp 0x71d26bad
push dword [ebx + 0x24]
mov ecx, edx
call fcn.71cf90c3
cmp byte [ebx + 0x34], 0
mov esi, eax
mov eax, dword [ebx + 0x24]
mov edi, dword [esp + 0x1c]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
jbe 0x71d48adb
lea edx, [ebx + 0x28]
mov dword [esp + 0x3c], edx
push dword [edx]
mov ecx, edi
call fcn.71cf90c3
cmp esi, eax
jb 0x71d586db
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x3c], edx
movzx eax, byte [ecx + 2]
add dword [esp + 0x2c], eax
movzx eax, byte [ecx + 3]
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x30]
movzx eax, byte [ebx + 0x34]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, eax
jb 0x71d48a9c
cmp byte [esp + 0xc], 0
jne 0x71d586e2
movzx eax, byte [ebx + 0x34]
mov ecx, dword [esp + 0x2c]
add esi, eax
mov ebx, dword [esp + 0x28]
lea ecx, [ecx + eax*4]
add ecx, 2
add ebx, 2
mov dword [esp + 0x10], ecx
lea ebx, [ebx + eax*2]
jmp 0x71cf9196
xor esi, esi
inc esi
mov dword [esp + 0x10], esi
jmp 0x71d0bc21
call fcn.71d51586
mov ecx, dword [esp + 0x1c]
jmp 0x71cf91b0
inc edx
add ebx, 2
jmp 0x71d1adb6
mov dword [esp + 0x14], eax
jmp 0x71d1e7e3
cmp al, 0x22
jne 0x71cf9192
mov eax, dword [edx + 0x24]
cmp byte [eax], 0xc
je 0x71d00f0d
jmp 0x71cf9192
mov ecx, dword [esp + 0x1c]
push 1
call fcn.71d3c071
jmp 0x71d1a6f9
mov esi, eax
jmp 0x71d48aad
push ecx
mov ecx, edi
call fcn.71d3025c
jmp 0x71d48ae6
mov edi, eax
mov dword [esp + 0x14], eax
jmp 0x71d2ab72
mov dword [esp + 0x14], eax
jmp 0x71d2ab8f
mov esi, eax
jmp 0x71d1e7a0
call fcn.71d51571
int3