Function at 0x28afb1f6
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
cmp dword [0x28b84efc], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
jne 0x28afb21a
call fcn.28af98bb
cmp esi, edi
je 0x28afc1a8
cmp ebx, edi
jne 0x28afb22e
mov ebx, 0x28b57936
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0x10]
cmp eax, edi
je 0x28afb237
mov dword [eax], edi
cmp dword [ebp + 0x18], edi
jne 0x28afb276
cmp ebx, edi
je 0x28afb276
mov eax, dword [esi + 0x58]
cmp eax, 1
je 0x28afb276
cmp eax, 0x2d
je 0x28afb276
cmp eax, 0x2e
je 0x28afb276
cmp eax, 2
jne 0x28afb263
mov esi, ebx
call fcn.28afaeb1
mov esi, dword [ebp + 8]
jmp 0x28afb26a
mov eax, ebx
call fcn.28afaf01
cmp eax, edi
mov dword [ebp - 0xc], eax
je 0x28afb276
mov ebx, eax
mov dword [ebp + 0xc], ebx
mov eax, dword [esi + 0x58]
cmp eax, 0x2e
mov dword [ebp - 0x10], eax
ja case.default.0x28afb28c
movzx ecx, byte [eax + 0x28afc656]
jmp dword [ecx*4 + 0x28afc5e6]
cmp dword [ebp + 0x28], 0
je 0x28afc56e
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push 0x2e
jmp 0x28afb9bb
cmp dword [ebp + 0x20], 0
jne 0x28afb318
cmp dword [ebp + 0x1c], 2
mov ecx, ebx
jne 0x28afb2e1
mov al, byte [ebx]
jmp 0x28afb2db
cmp al, 0xd
je 0x28afc5ce
cmp al, 0xa
je 0x28afc5ce
cmp al, 9
je 0x28afc5ce
inc ecx
mov al, byte [ecx]
test al, al
jne 0x28afb2c0
jmp 0x28afb318
cmp dword [ebp + 0x1c], 3
jne 0x28afb318
cmp byte [ebx], 0
je 0x28afb318
mov al, byte [ecx]
cmp al, 0xd
je 0x28afc5ce
cmp al, 0xa
je 0x28afc5ce
cmp al, 9
je 0x28afc5ce
inc ecx
cmp al, 0x20
jne 0x28afb313
cmp byte [ecx], al
je 0x28afc5ce
cmp byte [ecx], 0
jne 0x28afb2ec
cmp dword [ebp + 0x28], 0
je 0x28afc56e
cmp dword [ebp + 0x10], 0
je 0x28afc56e
cmp dword [ebp + 0x24], 0
je 0x28afb35a
cmp dword [ebp + 0x1c], 3
jne 0x28afb341
mov eax, ebx
call fcn.28afaf01
jmp 0x28afb34e
cmp dword [ebp + 0x1c], 2
jne 0x28afb351
mov esi, ebx
call fcn.28afaeb1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x28afb35a
mov ebx, dword [ebp - 0xc]
push 1
jmp 0x28afb9bb
xor edi, edi
cmp dword [ebp + 0x20], edi
je 0x28afb38e
cmp dword [ebp + 0x24], edi
je 0x28afb3b3
cmp dword [ebp + 0x1c], 3
jne 0x28afb37c
mov eax, ebx
call fcn.28afaf01
jmp 0x28afb383
mov esi, ebx
call fcn.28afaeb1
cmp eax, edi
mov dword [ebp - 0xc], eax
je 0x28afb3b3
mov ebx, eax
jmp 0x28afb3b3
mov al, byte [ebx]
mov ecx, ebx
jmp 0x28afb3af
cmp al, 0xd
je 0x28afc5ce
cmp al, 0xa
je 0x28afc5ce
cmp al, 9
je 0x28afc5ce
inc ecx
mov al, byte [ecx]
test al, al
jne 0x28afb394
cmp dword [ebp + 0x10], edi
je 0x28afc56e
push 2
jmp 0x28afb9bb
xor edi, edi
cmp ebx, edi
mov eax, ebx
lea esi, [ebp - 0x3c]
je 0x28afc5ce
cmp byte [ebx], 0
je 0x28afc5ce
cmp dword [ebp + 0x20], edi
je 0x28afb3f9
mov cl, byte [eax]
cmp cl, 0x20
je 0x28afb3f6
cmp cl, 9
jb 0x28afb3f1
cmp cl, 0xa
jbe 0x28afb3f6
cmp cl, 0xd
jne 0x28afb3f9
inc eax
jmp 0x28afb3e0
mov cl, byte [eax]
cmp cl, 0x2d
mov dword [ebp - 0x14], edi
jne 0x28afb40c
mov dword [ebp - 0x14], 1
jmp 0x28afb411
cmp cl, 0x2b
jne 0x28afb412
inc eax
mov cl, byte [eax]
test cl, cl
je 0x28afc5ce
or dword [ebp + 8], 0xffffffff
xor ebx, ebx
xor edx, edx
cmp cl, 0x30
jne 0x28afb430
inc edx
inc eax
cmp byte [eax], 0x30
je 0x28afb42a
cmp byte [eax], 0
je 0x28afb478
mov cl, byte [eax]
cmp cl, 0x30
jb 0x28afb44d
cmp cl, 0x39
ja 0x28afb44d
mov byte [esi], cl
inc esi
inc eax
inc ebx
cmp ebx, 0x18
jb 0x28afb435
jmp 0x28afb478
cmp byte [eax], 0x2e
jne 0x28afb478
inc eax
mov dword [ebp + 8], ebx
mov cl, byte [eax]
cmp cl, 0x30
jb 0x28afb46c
cmp cl, 0x39
ja 0x28afb46c
mov byte [esi], cl
inc esi
inc eax
inc ebx
cmp ebx, 0x18
jb 0x28afb456
cmp ebx, edi
jne 0x28afb478
cmp edx, edi
je 0x28afc5ce
cmp dword [ebp + 0x20], edi
je 0x28afb496
mov cl, byte [eax]
cmp cl, 0x20
je 0x28afb493
cmp cl, 9
jb 0x28afb48e
cmp cl, 0xa
jbe 0x28afb493
cmp cl, 0xd
jne 0x28afb496
inc eax
jmp 0x28afb47d
cmp byte [eax], 0
jne 0x28afc5ce
cmp dword [ebp + 0x10], edi
je 0x28afc56e
push 3
call fcn.28af976d
mov edi, eax
test edi, edi
pop ecx
je 0x28afc56e
test ebx, ebx
je 0x28afb4fa
cmp dword [ebp + 8], 0xffffffff
je 0x28afb4d6
jmp 0x28afb4d1
lea eax, [esi - 1]
cmp byte [eax], 0x30
jne 0x28afb4d6
mov esi, eax
dec ebx
cmp ebx, dword [ebp + 8]
jne 0x28afb4c6
test ebx, ebx
je 0x28afb4fa
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x10], eax
lea eax, [edi + 0x10]
push eax
lea eax, [edi + 0xc]
push eax
lea eax, [edi + 8]
mov byte [esi], 0
push eax
lea esi, [ebp - 0x10]
call fcn.28afb11a
add esp, 0xc
mov eax, dword [edi + 0x18]
xor eax, dword [ebp - 0x14]
and eax, 1
xor dword [edi + 0x18], eax
test ebx, ebx
jne 0x28afb510
mov byte [edi + 0x19], 1
jmp 0x28afb530
cmp dword [ebp + 8], 0xffffffff
mov byte [edi + 0x19], bl
jne 0x28afb51f
and byte [edi + 0x18], 1
jmp 0x28afb530
sub ebx, dword [ebp + 8]
shl ebx, 1
xor ebx, dword [edi + 0x18]
and ebx, 0xfe
xor dword [edi + 0x18], ebx
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
jmp 0x28afc56e
push dword [ebp + 0x20]
push dword [ebp + 0x10]
push eax
mov eax, ebx
call fcn.28afa6d0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 0xc], 0
je 0x28afb55e
push dword [ebp - 0xc]
call dword [0x28b8283c]
pop ecx
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret
push dword [ebp + 0x20]
mov eax, ebx
push dword [ebp + 0x10]
call fcn.28afac1d
pop ecx
pop ecx
jmp 0x28afb54b
xor esi, esi
xor edi, edi
xor edx, edx
cmp dword [ebp + 0x20], esi
mov eax, ebx
je 0x28afb59d
mov cl, byte [eax]
cmp cl, 0x20
je 0x28afb59a
cmp cl, 9
jb 0x28afb595
cmp cl, 0xa
jbe 0x28afb59a
cmp cl, 0xd
jne 0x28afb59d
inc eax
jmp 0x28afb584
mov cl, byte [eax]
cmp cl, 0x4e
jne 0x28afb601
cmp byte [eax + 1], 0x61
jne 0x28afb601
cmp byte [eax + 2], cl
jne 0x28afb601
cmp byte [eax + 3], 0
jne 0x28afc5ce
cmp dword [ebp + 0x10], 0
je 0x28afc56e
mov eax, dword [ebp + 8]
cmp eax, dword [0x28b84f38]
jne 0x28afb5e6
push 0xd
call fcn.28af976d
test eax, eax
pop ecx
je 0x28afb68c
fld qword [0x28b84fd8]
jmp 0x28afb656
push 0xe
call fcn.28af976d
test eax, eax
pop ecx
je 0x28afb68c
fld qword [0x28b84fd8]
jmp 0x28afb684
cmp cl, 0x2d
jne 0x28afb60a
xor edi, edi
inc edi
inc eax
mov cl, byte [eax]
cmp cl, 0x49
jne 0x28afb698
cmp byte [eax + 1], 0x4e
jne 0x28afb698
cmp byte [eax + 2], 0x46
jne 0x28afb698
cmp byte [eax + 3], 0
jne 0x28afc5ce
cmp dword [ebp + 0x10], 0
je 0x28afc56e
mov eax, dword [ebp + 8]
cmp eax, dword [0x28b84f38]
jne 0x28afb666
push 0xd
call fcn.28af976d
test eax, eax
pop ecx
je 0x28afb68c
test edi, edi
je 0x28afb65e
fld qword [0x28b83318]
fstp dword [eax + 8]
jmp 0x28afc569
fld qword [0x28b83310]
jmp 0x28afb656
push 0xe
call fcn.28af976d
test eax, eax
pop ecx
je 0x28afb68c
test edi, edi
je 0x28afb67e
fld qword [0x28b83318]
jmp 0x28afb684
fld qword [0x28b83310]
fstp qword [eax + 8]
jmp 0x28afc569
xor eax, eax
call fcn.28afa18c
jmp case.0x28afb28c.0
test edi, edi
jne 0x28afb6a2
cmp cl, 0x2b
jne 0x28afb6a2
inc eax
mov cl, byte [eax]
test cl, cl
je 0x28afc5ce
cmp cl, 0x2b
je 0x28afc5ce
cmp cl, 0x2d
je 0x28afc5ce
jmp 0x28afb6c9
cmp cl, 0x39
ja 0x28afb6ce
inc eax
mov cl, byte [eax]
inc edx
cmp cl, 0x30
jae 0x28afb6c0
cmp byte [eax], 0x2e
jne 0x28afb6e4
inc eax
jmp 0x28afb6dd
cmp cl, 0x39
ja 0x28afb6e4
inc eax
inc esi
mov cl, byte [eax]
cmp cl, 0x30
jae 0x28afb6d6
test edx, edx
jne 0x28afb6f0
test esi, esi
je 0x28afc5ce
mov cl, byte [eax]
cmp cl, 0x65
je 0x28afb6fc
cmp cl, 0x45
jne 0x28afb718
inc eax
mov cl, byte [eax]
cmp cl, 0x2d
je 0x28afb710
cmp cl, 0x2b
jne 0x28afb711
jmp 0x28afb710
cmp cl, 0x39
ja 0x28afb718
inc eax
mov cl, byte [eax]
cmp cl, 0x30
jae 0x28afb70b
cmp dword [ebp + 0x20], 0
je 0x28afb737
mov cl, byte [eax]
cmp cl, 0x20
je 0x28afb734
cmp cl, 9
jb 0x28afb72f
cmp cl, 0xa
jbe 0x28afb734
cmp cl, 0xd
jne 0x28afb737
inc eax
jmp 0x28afb71e
cmp byte [eax], 0
jne 0x28afc5ce
cmp dword [ebp + 0x10], 0
je 0x28afc56e
mov eax, dword [ebp + 8]
cmp eax, dword [0x28b84f38]
jne 0x28afb78f
push 0xd
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
lea eax, [esi + 8]
push eax
push 0x28b70f00
push ebx
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
je 0x28afb9d5
mov eax, esi
call fcn.28afa18c
jmp 0x28afc5ce
push 0xe
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
lea eax, [esi + 8]
push eax
push 0x28b70efc
jmp 0x28afb770
cmp dword [ebp + 0x20], 0
mov eax, ebx
je 0x28afb87f
mov cl, byte [eax]
cmp cl, 0x20
je 0x28afb7ce
cmp cl, 9
jb 0x28afb7c9
cmp cl, 0xa
jbe 0x28afb7ce
cmp cl, 0xd
jne 0x28afb7d1
inc eax
jmp 0x28afb7b8
mov cl, byte [eax]
cmp cl, 0x30
jne 0x28afb7dd
xor esi, esi
inc eax
jmp 0x28afb852
cmp cl, 0x31
jne 0x28afb7e7
xor esi, esi
inc esi
jmp 0x28afb7da
cmp cl, 0x74
jne 0x28afb816
inc eax
mov cl, byte [eax]
inc eax
cmp cl, 0x72
jne 0x28afc5ce
mov cl, byte [eax]
inc eax
cmp cl, 0x75
jne 0x28afc5ce
mov cl, byte [eax]
inc eax
cmp cl, 0x65
jne 0x28afc5ce
xor esi, esi
inc esi
jmp 0x28afb852
cmp cl, 0x66
jne 0x28afc5ce
inc eax
mov cl, byte [eax]
inc eax
cmp cl, 0x61
jne 0x28afc5ce
mov cl, byte [eax]
inc eax
cmp cl, 0x6c
jne 0x28afc5ce
mov cl, byte [eax]
inc eax
cmp cl, 0x73
jne 0x28afc5ce
mov cl, byte [eax]
inc eax
cmp cl, 0x65
jne 0x28afc5ce
xor esi, esi
cmp byte [eax], 0
je 0x28afb8f2
mov cl, byte [eax]
cmp cl, 0x20
je 0x28afb871
cmp cl, 9
jb 0x28afb86c
cmp cl, 0xa
jbe 0x28afb871
cmp cl, 0xd
jne 0x28afb874
inc eax
jmp 0x28afb85b
cmp byte [eax], 0
jne 0x28afc5ce
jmp 0x28afb8f2
mov al, byte [ebx]
cmp al, 0x30
jne 0x28afb88b
cmp byte [ebx + 1], 0
je 0x28afb8f0
cmp al, 0x31
jne 0x28afb89a
cmp byte [ebx + 1], 0
jne 0x28afb89a
xor esi, esi
inc esi
jmp 0x28afb8f2
cmp al, 0x74
jne 0x28afb8b6
cmp byte [ebx + 1], 0x72
jne 0x28afb8b6
cmp byte [ebx + 2], 0x75
jne 0x28afb8b6
cmp byte [ebx + 3], 0x65
jne 0x28afb8b6
cmp byte [ebx + 4], 0
je 0x28afb895
cmp al, 0x66
jne 0x28afc5ce
cmp byte [ebx + 1], 0x61
jne 0x28afc5ce
cmp byte [ebx + 2], 0x6c
jne 0x28afc5ce
cmp byte [ebx + 3], 0x73
jne 0x28afc5ce
cmp byte [ebx + 4], 0x65
jne 0x28afc5ce
cmp byte [ebx + 5], 0
jne 0x28afc5ce
xor esi, esi
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push 0xf
call fcn.28af976d
test eax, eax
pop ecx
je case.0x28afb28c.0
mov dword [eax + 8], esi
jmp 0x28afc569
cmp dword [ebp + 0x20], 0
mov eax, ebx
jne 0x28afb95c
cmp byte [ebx], 0
je 0x28afb95c
mov cl, byte [eax]
cmp cl, 0xd
je 0x28afc5ce
cmp cl, 0xa
je 0x28afc5ce
cmp cl, 9
je 0x28afc5ce
inc eax
cmp cl, 0x20
jne 0x28afb957
mov cl, byte [eax]
test cl, cl
je 0x28afc5ce
cmp cl, 0x20
je 0x28afc5ce
cmp byte [eax], 0
jne 0x28afb921
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push 0x10
jmp 0x28afb9bb
cmp dword [ebp + 0x20], 0
je 0x28afb980
mov eax, ebx
call fcn.28afaf01
test eax, eax
mov dword [ebp - 0xc], eax
je 0x28afb980
mov ebx, eax
mov ecx, ebx
call fcn.28aba05d
cmp eax, 1
jne 0x28afc5ce
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push 0x11
jmp 0x28afb9bb
push 1
mov eax, ebx
call fcn.28acfa9f
test eax, eax
pop ecx
jne 0x28afc5ce
cmp dword [ebp + 0x10], eax
je 0x28afc56e
push 0x12
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
push ebx
call fcn.28afef16
pop ecx
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
jmp 0x28afc56e
push dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push ebx
push dword [0x28b84fb4]
call fcn.28afaffc
xor ecx, ecx
add esp, 0xc
test eax, eax
setle cl
mov dword [ebp - 8], ecx
jmp case.default.0x28afb28c
push 1
mov eax, ebx
call fcn.28acf79f
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jne case.default.0x28afb28c
cmp dword [ebp + 0x10], eax
je case.default.0x28afb28c
test ebx, ebx
je case.default.0x28afb28c
push 0x14
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
mov eax, ebx
mov cl, byte [eax]
cmp cl, 0x20
je 0x28afba53
cmp cl, 9
jb 0x28afba4e
cmp cl, 0xa
jbe 0x28afba53
cmp cl, 0xd
jne 0x28afba56
inc eax
jmp 0x28afba3d
mov cl, byte [eax]
mov ebx, eax
jmp 0x28afba73
cmp cl, 0x20
je 0x28afba77
cmp cl, 9
jb 0x28afba6b
cmp cl, 0xa
jbe 0x28afba77
cmp cl, 0xd
je 0x28afba77
inc ebx
mov cl, byte [ebx]
test cl, cl
jne 0x28afba5c
sub ebx, eax
call fcn.28afeed5
jmp 0x28afbb94
xor edi, edi
push 1
mov eax, ebx
mov dword [ebp + 8], edi
call fcn.28acf2b0
cmp eax, edi
pop ecx
mov dword [ebp - 8], eax
jne case.default.0x28afb28c
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x28afbaf7
mov eax, dword [ebp + 0xc]
lea edi, [ebp - 0x14]
call fcn.28acef2c
mov ebx, dword [ebp - 0x14]
mov ecx, dword [esi + 0x20]
mov edi, eax
push ebx
mov eax, esi
call fcn.28ad36a9
test eax, eax
pop ecx
jne 0x28afbae5
test ebx, ebx
je 0x28afbaf7
push ebx
call dword [0x28b8283c]
test edi, edi
pop ecx
je 0x28afc5ce
push edi
call dword [0x28b8283c]
pop ecx
jmp 0x28afc5ce
test ebx, ebx
mov eax, dword [eax + 8]
mov dword [ebp + 8], eax
je 0x28afbaf7
push ebx
call dword [0x28b8283c]
pop ecx
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x28afbb48
push 0x15
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
jne 0x28afbb1a
test edi, edi
je case.0x28afb28c.0
push edi
jmp 0x28afbf32
test edi, edi
je 0x28afbb23
mov dword [esi + 8], edi
jmp 0x28afbb2f
push dword [ebp + 0xc]
call fcn.28afef16
pop ecx
mov dword [esi + 8], eax
cmp dword [ebp + 8], 0
je 0x28afbb41
push dword [ebp + 8]
call fcn.28afef16
pop ecx
mov dword [esi + 0xc], eax
mov dword [ebx], esi
jmp case.default.0x28afb28c
test edi, edi
je case.default.0x28afb28c
push edi
call dword [0x28b8283c]
pop ecx
jmp case.default.0x28afb28c
push 1
mov eax, ebx
call fcn.28acefcc
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jne case.default.0x28afb28c
cmp dword [ebp + 0x10], eax
je case.default.0x28afb28c
push 0x16
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
push ebx
call fcn.28afef16
pop ecx
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
jmp case.default.0x28afb28c
push 1
mov eax, ebx
call fcn.28acefcc
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jne case.default.0x28afb28c
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x28afbbdb
push 0x17
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
push ebx
call fcn.28afef16
mov dword [esi + 8], eax
pop ecx
mov dword [edi], esi
mov esi, dword [ebp + 0x14]
test esi, esi
je case.default.0x28afb28c
cmp dword [esi + 4], 2
jne case.default.0x28afb28c
cmp dword [esi + 0x28], 2
je case.default.0x28afb28c
mov edx, ebx
call fcn.28afae46
mov edi, eax
test edi, edi
mov eax, dword [esi + 0x20]
mov ebx, esi
je 0x28afbc22
push edi
push 0
call fcn.28ad8541
push edi
mov ebx, eax
call dword [0x28b8283c]
add esp, 0xc
jmp 0x28afbc30
push dword [ebp + 0xc]
push 0
call fcn.28ad8541
pop ecx
pop ecx
mov ebx, eax
test ebx, ebx
je 0x28afbce9
mov dword [esi + 0x28], 2
jmp case.default.0x28afb28c
push 1
mov eax, ebx
call fcn.28acefcc
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jne case.default.0x28afb28c
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x28afbc7e
push 0x18
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
push ebx
call fcn.28afef16
mov dword [esi + 8], eax
pop ecx
mov dword [edi], esi
mov esi, dword [ebp + 0x14]
test esi, esi
je case.default.0x28afb28c
cmp dword [esi + 4], 2
jne case.default.0x28afb28c
mov edx, ebx
call fcn.28afae46
mov ecx, dword [esi + 0x20]
mov edi, eax
test edi, edi
mov eax, esi
je 0x28afbcb9
push edi
push 0
call fcn.28ad88c4
push edi
call dword [0x28b8283c]
add esp, 0xc
jmp 0x28afbcc3
push ebx
push 0
call fcn.28ad88c4
pop ecx
pop ecx
mov dword [esi + 0x28], 3
jmp case.default.0x28afb28c
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push esi
push ebx
push dword [0x28b84fa0]
call fcn.28afaffc
add esp, 0xc
test eax, eax
jge 0x28afbcf5
mov dword [ebp - 8], 2
jmp case.default.0x28afb28c
and dword [ebp - 8], 0
test esi, esi
je case.default.0x28afb28c
cmp dword [esi + 4], 2
jne case.default.0x28afb28c
mov dword [esi + 0x28], 4
jmp case.default.0x28afb28c
push 1
mov eax, ebx
call fcn.28acefcc
mov esi, dword [ebp + 0x14]
test esi, esi
pop ecx
mov dword [ebp - 8], eax
je 0x28afbd31
cmp dword [esi + 0x20], 0
jne 0x28afbd38
mov dword [ebp - 8], 3
cmp dword [ebp - 8], 0
jne case.default.0x28afb28c
mov edx, ebx
call fcn.28afae46
mov ecx, dword [esi + 0x20]
mov edi, eax
test edi, edi
je 0x28afbd63
call fcn.28ab08f1
push edi
mov ebx, eax
call dword [0x28b8283c]
pop ecx
jmp 0x28afbd6d
mov eax, dword [ebp + 0xc]
call fcn.28ab08f1
mov ebx, eax
test ebx, ebx
je 0x28afbd77
cmp dword [ebx + 0x30], 3
je 0x28afbd83
mov dword [ebp - 8], 4
jmp case.default.0x28afb28c
cmp dword [ebp + 0x10], 0
je 0x28afbdab
call fcn.28ab20bc
push 0xaa3
push str..Autreslibxmlxmlschemastypes.c
push str.Unimplemented_block_at__s:_d_n
mov ecx, eax
call fcn.28ab20f0
push dword [eax]
call dword [ecx]
add esp, 0x10
cmp dword [esi + 4], 2
jne case.default.0x28afb28c
mov dword [esi + 0x28], 5
jmp case.default.0x28afb28c
mov esi, dword [ebp + 0x14]
xor edi, edi
cmp esi, edi
je 0x28afbe0b
cmp dword [esi + 0x20], edi
je 0x28afbe0b
mov eax, dword [ebp + 0x10]
push esi
push ebx
push dword [0x28b84fa8]
call fcn.28afaffc
add esp, 0xc
test eax, eax
jg 0x28afbdf2
mov dword [ebp - 8], 1
jmp case.default.0x28afb28c
cmp dword [esi + 4], 2
mov dword [ebp - 8], edi
jne case.default.0x28afb28c
mov dword [esi + 0x28], 6
jmp case.default.0x28afb28c
cmp dword [ebp - 0xc], edi
je 0x28afbe1a
push dword [ebp - 0xc]
call dword [0x28b8283c]
pop ecx
push 3
pop eax
jmp 0x28afb561
mov eax, dword [ebp + 0xc]
xor ebx, ebx
push 1
mov dword [ebp + 8], ebx
call fcn.28acf2b0
cmp eax, ebx
mov esi, dword [ebp + 0x14]
pop ecx
mov dword [ebp - 8], eax
jne 0x28afbea3
cmp esi, ebx
je 0x28afbead
mov eax, dword [ebp + 0xc]
lea edi, [ebp - 0x14]
call fcn.28acef2c
mov edi, dword [ebp - 0x14]
test edi, edi
mov ebx, eax
je 0x28afbe7f
mov ecx, dword [esi + 0x20]
push edi
mov eax, esi
call fcn.28ad36a9
test eax, eax
pop ecx
jne 0x28afbe6d
mov dword [ebp - 8], 1
jmp 0x28afbe7f
cmp dword [ebp + 0x10], 0
je 0x28afbe7f
push dword [eax + 8]
call fcn.28afef16
pop ecx
mov dword [ebp + 8], eax
test ebx, ebx
je 0x28afbe97
cmp dword [ebp + 0x10], 0
je 0x28afbe8f
cmp dword [ebp - 8], 0
je 0x28afbe97
push ebx
call dword [0x28b8283c]
pop ecx
test edi, edi
je 0x28afbea3
push edi
call dword [0x28b8283c]
pop ecx
test esi, esi
je 0x28afbead
cmp dword [esi + 0x20], 0
jne 0x28afbeb4
mov dword [ebp - 8], 3
xor edi, edi
cmp dword [ebp - 8], edi
jne case.default.0x28afb28c
mov eax, dword [ebp + 0xc]
mov esi, dword [esi + 0x20]
push edi
call fcn.28ad8ca6
pop ecx
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x28afb9fb
mov dword [ebp - 8], edi
mov edi, dword [ebp + 0x10]
test edi, edi
je case.default.0x28afb28c
push 0x1c
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je 0x28afbf19
test ebx, ebx
je 0x28afbefc
mov dword [esi + 8], ebx
jmp 0x28afbf08
push dword [ebp + 0xc]
call fcn.28afef16
pop ecx
mov dword [esi + 8], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x28afbf12
mov dword [esi + 0xc], eax
mov dword [edi], esi
jmp case.default.0x28afb28c
test ebx, ebx
je 0x28afbf25
push ebx
call dword [0x28b8283c]
pop ecx
cmp dword [ebp + 8], 0
je case.0x28afb28c.0
push dword [ebp + 8]
call dword [0x28b8283c]
pop ecx
jmp case.0x28afb28c.0
cmp byte [ebx], 0
je 0x28afbfca
cmp dword [ebp + 0x20], 0
je 0x28afbf5d
mov eax, ebx
call fcn.28afaf01
test eax, eax
mov dword [ebp - 0xc], eax
je 0x28afbf5d
mov ebx, eax
push ebx
call fcn.28afef16
mov edi, eax
cmp byte [edi], 0
pop ecx
mov ecx, edi
je 0x28afbfac
mov al, byte [ecx]
cmp al, 0x20
jb 0x28afbfa3
cmp al, 0x7f
jae 0x28afbfa3
cmp al, 0x20
je 0x28afbfa3
cmp al, 0x3c
je 0x28afbfa3
cmp al, 0x3e
je 0x28afbfa3
cmp al, 0x22
je 0x28afbfa3
cmp al, 0x7b
je 0x28afbfa3
cmp al, 0x7d
je 0x28afbfa3
cmp al, 0x7c
je 0x28afbfa3
cmp al, 0x5c
je 0x28afbfa3
cmp al, 0x5e
je 0x28afbfa3
cmp al, 0x60
je 0x28afbfa3
cmp al, 0x27
jne 0x28afbfa6
mov byte [ecx], 0x5f
inc ecx
cmp byte [ecx], 0
jne 0x28afbf6d
push edi
call fcn.28ad533b
pop ecx
push edi
mov esi, eax
call dword [0x28b8283c]
test esi, esi
pop ecx
je 0x28afc5ce
call fcn.28ad5e69
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push 0x1d
jmp 0x28afb9bb
xor esi, esi
cmp ebx, esi
mov ecx, ebx
mov dword [ebp + 8], esi
je 0x28afc5ce
cmp dword [ebp + 0x20], esi
je 0x28afc004
mov al, byte [ecx]
cmp al, 0x20
je 0x28afc001
cmp al, 9
jb 0x28afbffd
cmp al, 0xa
jbe 0x28afc001
cmp al, 0xd
jne 0x28afc004
inc ecx
jmp 0x28afbfef
mov dword [ebp - 0x14], ecx
mov al, byte [ecx]
cmp al, 0x30
jb 0x28afc011
cmp al, 0x39
jbe 0x28afc021
cmp al, 0x41
jb 0x28afc019
cmp al, 0x46
jbe 0x28afc021
cmp al, 0x61
jb 0x28afc027
cmp al, 0x66
ja 0x28afc027
inc dword [ebp + 8]
inc ecx
jmp 0x28afc007
cmp dword [ebp + 0x20], esi
je 0x28afc041
mov al, byte [ecx]
cmp al, 0x20
je 0x28afc03e
cmp al, 9
jb 0x28afc03a
cmp al, 0xa
jbe 0x28afc03e
cmp al, 0xd
jne 0x28afc041
inc ecx
jmp 0x28afc02c
cmp byte [ecx], 0
jne 0x28afc5ce
mov eax, dword [ebp + 8]
push 2
cdq
pop ecx
idiv ecx
cmp edx, esi
mov edi, eax
jne 0x28afc5ce
cmp dword [ebp + 0x10], esi
je 0x28afc56e
push 0x2b
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
je case.0x28afb28c.0
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
call fcn.28afeed5
test eax, eax
jne 0x28afc091
push str.allocating_hexbin_data
jmp 0x28afc1ca
mov ebx, dword [ebp + 8]
test ebx, ebx
mov edx, eax
jle 0x28afc0aa
mov cl, byte [edx]
cmp cl, 0x61
jb 0x28afc0a6
sub cl, 0x20
mov byte [edx], cl
inc edx
dec ebx
jne 0x28afc09a
mov dword [esi + 0xc], edi
jmp 0x28afb9d2
and dword [ebp - 0x14], 0
xor edi, edi
test ebx, ebx
mov esi, ebx
je 0x28afc5ce
mov al, byte [ebx]
jmp 0x28afc0da
call fcn.28afa684
test eax, eax
jl 0x28afc0d7
cmp eax, 0x40
jge 0x28afc0f9
inc dword [ebp - 0x14]
inc esi
mov al, byte [esi]
test al, al
jne 0x28afc0c6
jmp 0x28afc0f9
call fcn.28afa684
test eax, eax
jl 0x28afc0f2
cmp eax, 0x40
jl 0x28afc5ce
cmp eax, 0x40
jne 0x28afc0f8
inc edi
inc esi
mov al, byte [esi]
test al, al
jne 0x28afc0e0
mov eax, dword [ebp - 0x14]
cdq
push 4
pop ecx
idiv ecx
test edi, edi
lea eax, [eax + eax*2]
mov dword [ebp + 8], eax
jne 0x28afc11c
test edx, edx
jne 0x28afc5ce
jmp 0x28afc180
cmp edi, 1
jne 0x28afc14e
cmp edx, 3
jne 0x28afc5ce
mov al, byte [esi]
call fcn.28afa684
test eax, eax
jl 0x28afc13a
cmp eax, 0x3f
jle 0x28afc13d
dec esi
jmp 0x28afc12a
test eax, 0xffffffc3
jne 0x28afc5ce
add dword [ebp + 8], 2
jmp 0x28afc180
cmp edi, 2
jne 0x28afc5ce
cmp edx, edi
jne 0x28afc5ce
mov al, byte [esi]
call fcn.28afa684
test eax, eax
jl 0x28afc16f
cmp eax, 0x3f
jle 0x28afc172
dec esi
jmp 0x28afc15f
test eax, 0xffffffcf
jne 0x28afc5ce
inc dword [ebp + 8]
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push 0x2c
call fcn.28af976d
mov esi, eax
test esi, esi
pop ecx
jne 0x28afc1b0
cmp dword [ebp - 0xc], 0
je 0x28afc1a8
push dword [ebp - 0xc]
call dword [0x28b8283c]
pop ecx
or eax, 0xffffffff
jmp 0x28afb561
mov eax, dword [ebp - 0x14]
lea eax, [edi + eax + 1]
push eax
call dword [0x28b82844]
mov edx, eax
test edx, edx
pop ecx
jne 0x28afc1e1
push str.allocating_base64_data
push dword [ebp + 0x14]
call fcn.28af9756
push esi
call dword [0x28b8283c]
add esp, 0xc
jmp 0x28afc5ce
mov dword [esi + 8], edx
cmp byte [ebx], 0
mov edi, ebx
je 0x28afc201
mov bl, byte [edi]
mov al, bl
call fcn.28afa684
test eax, eax
jl 0x28afc1fb
mov byte [edx], bl
inc edx
inc edi
cmp byte [edi], 0
jne 0x28afc1eb
mov eax, dword [ebp + 8]
mov byte [edx], 0
mov dword [esi + 0xc], eax
jmp 0x28afb9d5
xor edi, edi
cmp ebx, edi
mov dword [ebp + 8], ebx
mov dword [ebp - 0x14], edi
je 0x28afc5ce
cmp dword [ebp + 0x20], edi
je 0x28afc23e
mov eax, dword [ebp + 8]
mov al, byte [eax]
cmp al, 0x20
je 0x28afc239
cmp al, 9
jb 0x28afc235
cmp al, 0xa
jbe 0x28afc239
cmp al, 0xd
jne 0x28afc23e
inc dword [ebp + 8]
jmp 0x28afc224
mov eax, dword [ebp + 8]
mov al, byte [eax]
cmp al, 0x2d
jne 0x28afc250
mov dword [ebp - 0x14], 1
jmp 0x28afc254
cmp al, 0x2b
jne 0x28afc257
inc dword [ebp + 8]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
lea esi, [ebp + 8]
call fcn.28afb11a
add esp, 0xc
cmp eax, edi
mov dword [ebp - 8], eax
jl 0x28afc5ce
cmp dword [ebp + 0x20], edi
mov ecx, dword [ebp + 8]
je 0x28afc296
mov al, byte [ecx]
cmp al, 0x20
je 0x28afc293
cmp al, 9
jb 0x28afc28f
cmp al, 0xa
jbe 0x28afc293
cmp al, 0xd
jne 0x28afc296
inc ecx
jmp 0x28afc281
cmp byte [ecx], 0
jne 0x28afc5ce
mov eax, dword [ebp - 0x10]
cmp eax, 0x1f
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
jne 0x28afc315
cmp dword [ebp - 0x14], 0
jne 0x28afc2ce
test esi, esi
jne 0x28afc5ce
test edi, edi
jne 0x28afc5ce
test ebx, ebx
jne 0x28afc5ce
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push dword [ebp - 0x10]
call fcn.28af976d
test eax, eax
pop ecx
je 0x28afc56e
cmp dword [ebp - 8], 0
jne 0x28afc2f6
mov dword [ebp - 8], 1
mov edx, dword [eax + 0x18]
mov ecx, dword [ebp - 0x14]
and edx, 0xffffff00
and ecx, 1
or edx, ecx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], esi
mov dword [eax + 0x18], edx
jmp 0x28afc560
cmp eax, 0x22
jne 0x28afc336
cmp dword [ebp - 0x14], 1
je 0x28afc5ce
test esi, esi
jne 0x28afc2ce
test edi, edi
jne 0x28afc2ce
test ebx, ebx
je 0x28afc5ce
jmp 0x28afc2ce
cmp eax, 0x20
jne 0x28afc341
cmp dword [ebp - 0x14], 0
jmp 0x28afc31e
cmp eax, 0x21
jne 0x28afc2ce
cmp dword [ebp - 0x14], 1
jmp 0x28afc2b4
xor edi, edi
test ebx, ebx
mov dword [ebp + 8], ebx
je 0x28afc5ce
mov al, byte [ebx]
cmp al, 0x2d
jne 0x28afc365
inc edi
jmp 0x28afc369
cmp al, 0x2b
jne 0x28afc36d
inc ebx
mov dword [ebp + 8], ebx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
lea esi, [ebp + 8]
call fcn.28afb11a
add esp, 0xc
test eax, eax
mov dword [ebp - 8], eax
jl 0x28afc5ce
mov eax, dword [ebp + 8]
cmp byte [eax], 0
jne 0x28afc5ce
mov eax, dword [ebp - 0x10]
cmp eax, 0x25
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
jne 0x28afc3f6
mov eax, 0x39a
cmp ebx, eax
jb 0x28afc494
ja 0x28afc5ce
mov eax, 0x2028830
cmp esi, eax
jb 0x28afc494
ja 0x28afc5ce
test edi, edi
jne 0x28afc3e2
cmp ecx, 0x343cfff
ja 0x28afc5ce
cmp edi, 1
jne 0x28afc494
cmp ecx, 0x343d000
jmp 0x28afc48e
cmp eax, 0x23
jne 0x28afc42f
test ebx, ebx
jne 0x28afc5ce
cmp esi, 0x15
jb 0x28afc494
ja 0x28afc5ce
test edi, edi
jne 0x28afc422
cmp ecx, 0x2d48aff
ja 0x28afc5ce
cmp edi, 1
jne 0x28afc494
cmp ecx, 0x2d48b00
jmp 0x28afc48e
cmp eax, 0x27
jne 0x28afc461
test esi, esi
jne 0x28afc5ce
test ebx, ebx
jne 0x28afc5ce
cmp edi, 1
jne 0x28afc455
cmp ecx, 0x8000
ja 0x28afc5ce
test edi, edi
jne 0x28afc494
cmp ecx, 0x7fff
jmp 0x28afc48e
cmp eax, 0x29
jne 0x28afc494
test esi, esi
jne 0x28afc5ce
test ebx, ebx
jne 0x28afc5ce
cmp edi, 1
jne 0x28afc487
cmp ecx, 0x80
ja 0x28afc5ce
test edi, edi
jne 0x28afc494
cmp ecx, 0x7f
ja 0x28afc5ce
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push dword [ebp - 0x10]
call fcn.28af976d
test eax, eax
pop ecx
je 0x28afc56e
mov ecx, dword [ebp - 0x14]
mov dword [eax + 8], ecx
mov ecx, dword [eax + 0x18]
and ecx, 0xffffff00
and edi, 1
or ecx, edi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], ebx
mov dword [eax + 0x18], ecx
jmp 0x28afc563
test ebx, ebx
mov dword [ebp + 8], ebx
je 0x28afc5ce
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
lea esi, [ebp + 8]
call fcn.28afb11a
add esp, 0xc
test eax, eax
mov dword [ebp - 8], eax
jl 0x28afc5ce
mov eax, dword [ebp + 8]
cmp byte [eax], 0
jne 0x28afc5ce
cmp dword [ebp - 0x10], 0x26
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
jne 0x28afc585
mov eax, 0x734
cmp edi, eax
jb 0x28afc543
ja 0x28afc5ce
mov eax, 0x4051061
cmp esi, eax
jb 0x28afc543
ja 0x28afc5ce
cmp ebx, 0x91beff
ja 0x28afc5ce
cmp dword [ebp + 0x10], 0
je 0x28afc56e
push dword [ebp - 0x10]
call fcn.28af976d
test eax, eax
pop ecx
je 0x28afc56e
and byte [eax + 0x18], 0
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edi
mov dword [eax + 8], ebx
mov cl, byte [ebp - 8]
mov byte [eax + 0x19], cl
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
cmp dword [ebp - 0xc], 0
je 0x28afc57e
push dword [ebp - 0xc]
call dword [0x28b8283c]
pop ecx
xor eax, eax
jmp 0x28afb561
cmp dword [ebp - 0x10], 0x24
jne 0x28afc59e
test edi, edi
jne 0x28afc5ce
cmp esi, 0x2a
jb 0x28afc543
ja 0x28afc5ce
cmp ebx, 0x5a915ff
jmp 0x28afc53d
cmp dword [ebp - 0x10], 0x28
jne 0x28afc5b4
test esi, esi
jne 0x28afc5ce
test edi, edi
jne 0x28afc5ce
cmp ebx, 0xffff
jmp 0x28afc53d
cmp dword [ebp - 0x10], 0x2a
jne 0x28afc543
test esi, esi
jne 0x28afc5ce
test edi, edi
jne 0x28afc5ce
cmp ebx, 0xff
jbe 0x28afc543
cmp dword [ebp - 0xc], 0
je 0x28afc5de
push dword [ebp - 0xc]
call dword [0x28b8283c]
pop ecx
xor eax, eax
inc eax
jmp 0x28afb561