Function at 0x46fc5d
Capabilities:
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x110
mov edi, edx
mov dword [ebp - 0xcc], eax
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xd4], 0
cmp dword [0x667e78], 0
jne 0x46fc96
call fcn.0046e971
or eax, 0xffffffff
cmp dword [ebp - 0xcc], 0
je 0x471f3c
test edi, edi
jne 0x46fcaf
mov edi, 0x648a10
cmp dword [ebp + 8], 0
je 0x46fcbe
mov eax, dword [ebp + 8]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
sete dl
xor eax, eax
test edi, edi
setne al
test eax, edx
je 0x46fd19
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edx + 0x58]
cmp ecx, 1
setne dl
xor eax, eax
cmp ecx, 0x2d
setne al
test eax, edx
je 0x46fd19
cmp ecx, 0x2e
je 0x46fd19
cmp ecx, 2
jne 0x46fcfd
push edi
call fcn.0046f9ee
jmp 0x46fd03
push edi
call fcn.0046fa68
mov dword [ebp - 0xd0], eax
pop eax
cmp dword [ebp - 0xd0], 0
je 0x46fd19
mov edi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0x58]
mov dword [ebp - 0x114], ecx
cmp ecx, 0x2e
ja case.default.0x46fd31
jmp dword [ecx*4 + 0x648ac0]
cmp dword [ebp + 0x20], 0
setne dl
xor eax, eax
cmp dword [ebp + 8], 0
setne al
test eax, edx
je 0x471f09
mov eax, 0x2e
jmp 0x470f42
cmp dword [ebp + 0x18], 0
jne 0x46fdd9
mov ebx, edi
cmp esi, 2
jne 0x46fd93
cmp byte [edi], 0
je 0x46fdd9
mov cl, byte [ebx]
cmp cl, 0xd
sete dl
cmp cl, 0xa
sete al
or eax, edx
test al, 1
jne 0x471eec
cmp cl, 9
je 0x471eec
inc ebx
cmp byte [ebx], 0
jmp 0x46fd6a
cmp esi, 3
jne 0x46fdd9
cmp byte [edi], 0
je 0x46fdd9
mov cl, byte [ebx]
cmp cl, 0xd
sete dl
cmp cl, 0xa
sete al
or eax, edx
test al, 1
jne 0x471eec
cmp cl, 9
je 0x471eec
cmp cl, 0x20
lea eax, [ebx + 1]
jne 0x46fdd2
mov ebx, eax
cmp byte [eax], 0x20
jne 0x46fdd4
jmp 0x471eec
mov ebx, eax
cmp byte [eax], 0
jmp 0x46fd9b
cmp dword [ebp + 0x20], 0
setne dl
xor eax, eax
cmp dword [ebp + 8], 0
setne al
test eax, edx
je 0x471f09
cmp dword [ebp + 0x1c], 0
je 0x46fe25
cmp esi, 3
jne 0x46fe04
push edi
call fcn.0046fa68
jmp 0x46fe0f
cmp esi, 2
jne 0x46fe16
push edi
call fcn.0046f9ee
mov dword [ebp - 0xd0], eax
pop ebx
cmp dword [ebp - 0xd0], 0
je 0x46fe25
mov edi, dword [ebp - 0xd0]
mov eax, 1
jmp 0x4716ab
cmp dword [ebp + 0x18], 0
je 0x46fe66
cmp dword [ebp + 0x1c], 0
je 0x46fe94
cmp esi, 3
jne 0x46fe48
push edi
call fcn.0046fa68
jmp 0x46fe4e
push edi
call fcn.0046f9ee
mov dword [ebp - 0xd0], eax
pop ecx
cmp dword [ebp - 0xd0], 0
je 0x46fe94
mov edi, dword [ebp - 0xd0]
jmp 0x46fe94
cmp byte [edi], 0
mov ebx, edi
je 0x46fe94
mov cl, byte [ebx]
cmp cl, 0xd
sete dl
cmp cl, 0xa
sete al
or eax, edx
test al, 1
jne 0x471eec
cmp cl, 9
je 0x471eec
inc ebx
cmp byte [ebx], 0
jmp 0x46fe6b
mov eax, 2
cmp dword [ebp + 8], 0
jne 0x470fbc
jmp 0x471f09
lea eax, [ebp - 0x2c]
mov ecx, edi
mov dword [ebp - 0x84], eax
test edi, edi
je 0x471eec
mov bl, byte [edi]
test bl, bl
je 0x471eec
cmp dword [ebp + 0x18], 0
je 0x46fee9
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x46fee4
cmp bl, 0xd
jne 0x46fee9
inc ecx
mov bl, byte [ecx]
jmp 0x46fecb
mov dword [ebp - 0xd8], 0
mov al, byte [ecx]
cmp al, 0x2d
jne 0x46ff06
inc ecx
mov dword [ebp - 0xd8], 1
jmp 0x46ff10
cmp al, 0x2b
sete al
movzx eax, al
add ecx, eax
mov al, byte [ecx]
test al, al
je 0x471eec
xor esi, esi
or edi, 0xffffffff
xor ebx, ebx
cmp al, 0x30
jne 0x46ff30
inc ecx
mov ebx, 1
cmp byte [ecx], 0x30
jmp 0x46ff23
cmp byte [ecx], 0
je 0x46ff82
mov dl, byte [ecx]
lea eax, [edx - 0x30]
cmp al, 9
jbe 0x46ff6d
cmp dl, 0x2e
jne 0x46ff82
inc ecx
mov edi, esi
mov dl, byte [ecx]
lea eax, [edx - 0x30]
cmp al, 9
ja 0x46ff64
mov eax, dword [ebp - 0x84]
inc esi
inc ecx
mov byte [eax], dl
inc dword [ebp - 0x84]
cmp esi, 0x17
jbe 0x46ff46
or ebx, esi
jne 0x46ff82
jmp 0x471eec
mov eax, dword [ebp - 0x84]
inc esi
inc ecx
mov byte [eax], dl
inc dword [ebp - 0x84]
cmp esi, 0x17
jbe 0x46ff35
cmp dword [ebp + 0x18], 0
je 0x46ffa6
mov bl, byte [ecx]
cmp bl, 0x20
lea eax, [ebx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x46ffa3
cmp bl, 0xd
jne 0x46ffa6
inc ecx
jmp 0x46ff88
cmp byte [ecx], 0
jne 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
mov eax, 3
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x471f09
test esi, esi
je 0x470020
cmp edi, 0xffffffff
je 0x46fff2
cmp esi, edi
je 0x46fff2
mov eax, dword [ebp - 0x84]
cmp byte [eax - 1], 0x30
jne 0x46fff2
dec eax
dec esi
mov dword [ebp - 0x84], eax
cmp esi, edi
jne 0x46ffe0
test esi, esi
je 0x470020
mov eax, dword [ebp - 0x84]
lea edx, [ebx + 8]
mov byte [eax], 0
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x84], eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ebx + 0xc]
push eax
lea eax, [ebp - 0x84]
call fcn.0046fba5
pop eax
pop edx
mov al, byte [ebx + 0x18]
and eax, 0xfffffffe
or eax, dword [ebp - 0xd8]
test esi, esi
mov byte [ebx + 0x18], al
jne 0x47003c
mov byte [ebx + 0x19], 1
jmp 0x470ce3
mov ecx, esi
cmp edi, 0xffffffff
mov byte [ebx + 0x19], cl
jne 0x47004b
and eax, 1
jmp 0x470055
sub esi, edi
and eax, 1
lea edx, [esi + esi]
or eax, edx
mov byte [ebx + 0x18], al
jmp 0x470ce3
or eax, 0xffffffff
mov dword [ebp - 0x88], edi
test edi, edi
je 0x470ffa
cmp dword [ebp + 0x18], 0
je 0x4700a3
mov cl, byte [edi]
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x47008f
cmp cl, 0xd
jne 0x4700a3
mov edx, dword [ebp - 0x88]
lea eax, [edx + 1]
mov dword [ebp - 0x88], eax
mov cl, byte [edx + 1]
jmp 0x470076
mov eax, dword [ebp - 0x88]
mov cl, byte [eax]
cmp cl, 0x2d
setne dl
xor eax, eax
cmp cl, 0x2f
setbe al
test eax, edx
je 0x4700cb
mov eax, 1
cmp cl, 0x39
ja 0x470ffa
xor eax, eax
call fcn.0046e7f2
mov esi, eax
or eax, 0xffffffff
test esi, esi
je 0x470ffa
mov edx, dword [ebp - 0x88]
cmp byte [edx], 0x2d
jne 0x4702fa
cmp byte [edx + 1], 0x2d
jne 0x4702fa
lea eax, [edx + 2]
mov dword [ebp - 0x88], eax
cmp byte [edx + 2], 0x2d
jne 0x47018e
cmp dword [ebp - 0x114], 6
je 0x470793
lea eax, [edx + 3]
lea edx, [ebp - 0x88]
mov dword [ebp - 0x88], eax
lea eax, [esi + 8]
call fcn.0046f515
test eax, eax
jne 0x470793
mov eax, dword [ebp - 0x88]
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x5a
sete al
or eax, edx
test al, 1
jne 0x47015e
cmp cl, 0x2b
je 0x47015e
cmp cl, 0x2d
jne 0x470793
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f764
test eax, eax
jne 0x470793
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov dword [esi], 5
jmp 0x470763
lea ebx, [esi + 8]
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.0046f49a
test eax, eax
jne 0x470793
mov edi, dword [ebp - 0x88]
cmp byte [edi], 0x2d
jne 0x4702a3
lea eax, [edi + 1]
lea edx, [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, ebx
call fcn.0046f515
test eax, eax
jne 0x47029d
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x11c], eax
cmp byte [eax], 0x3a
je 0x47029d
mov ecx, dword [esi + 8]
test cl, 3
jne 0x470200
mov edx, 0x64
mov eax, ecx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x470210
mov edx, 0x190
mov eax, ecx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x47022b
movzx eax, byte [esi + 0xc]
mov dx, word [esi + 0xc]
and eax, 0xf
shr dx, 4
and edx, 0x1f
cmp edx, dword [eax*4 + 0x64861c]
jmp 0x470244
movzx eax, byte [esi + 0xc]
mov dx, word [esi + 0xc]
and eax, 0xf
shr dx, 4
and edx, 0x1f
cmp edx, dword [eax*4 + 0x6485dc]
ja 0x47029d
mov edi, dword [ebp - 0x11c]
mov cl, byte [edi]
test cl, cl
sete dl
cmp cl, 0x5a
sete al
or eax, edx
test al, 1
jne 0x47026d
cmp cl, 0x2b
je 0x47026d
cmp cl, 0x2d
jne 0x470793
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f764
test eax, eax
jne 0x470793
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov dword [esi], 7
jmp 0x470763
mov dword [ebp - 0x88], edi
mov eax, dword [ebp - 0x88]
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x5a
sete al
or eax, edx
test al, 1
jne 0x4702ca
cmp cl, 0x2b
je 0x4702ca
cmp cl, 0x2d
jne 0x470793
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f764
test eax, eax
jne 0x470793
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov dword [esi], 6
jmp 0x470763
mov al, byte [edx]
sub eax, 0x30
cmp al, 9
ja 0x470364
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f596
test eax, eax
jne 0x470364
mov eax, dword [ebp - 0x88]
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x5a
sete al
or eax, edx
test al, 1
jne 0x470338
cmp cl, 0x2b
je 0x470338
cmp cl, 0x2d
jne 0x470364
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f764
test eax, eax
jne 0x470364
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov dword [esi], 4
jmp 0x470763
lea eax, [esi + 8]
mov dword [ebp - 0x88], edi
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xe4], 0
mov ebx, edi
mov cl, byte [edi]
lea eax, [ecx - 0x30]
cmp al, 9
seta dl
xor eax, eax
cmp cl, 0x2d
setne al
test eax, edx
je 0x4703ab
or eax, 0xffffffff
cmp cl, 0x2b
jne 0x470431
cmp byte [edi], 0x2d
jne 0x4703bd
mov dword [ebp - 0xe0], 1
lea ebx, [edi + 1]
mov dl, byte [ebx]
mov ecx, ebx
lea eax, [edx - 0x30]
cmp al, 9
ja 0x470401
mov edi, dword [ebp - 0xdc]
inc dword [ebp - 0xe4]
imul eax, dword [edi], 0xa
movzx edx, dl
inc ebx
lea eax, [eax + edx - 0x30]
mov dword [edi], eax
mov dl, byte [ebx]
lea eax, [edx - 0x30]
cmp al, 9
jbe 0x4703c8
cmp dword [ebp - 0xe4], 3
jle 0x470401
cmp dword [ebp - 0xe4], 4
jle 0x470408
cmp byte [ecx], 0x30
jne 0x470408
mov eax, 1
jmp 0x470431
cmp dword [ebp - 0xe0], 0
je 0x470419
mov eax, dword [ebp - 0xdc]
neg dword [eax]
mov edx, dword [ebp - 0xdc]
mov eax, 2
cmp dword [edx], 0
je 0x470431
mov dword [ebp - 0x88], ebx
xor al, al
test eax, eax
jne 0x470793
mov eax, dword [ebp - 0x88]
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x5a
sete al
or eax, edx
test al, 1
jne 0x47045c
cmp cl, 0x2b
je 0x47045c
cmp cl, 0x2d
jne 0x470488
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f764
test eax, eax
jne 0x470488
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov dword [esi], 8
jmp 0x470763
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0x2d
jne 0x470793
inc eax
lea edx, [ebp - 0x88]
mov dword [ebp - 0x88], eax
lea eax, [esi + 8]
call fcn.0046f49a
test eax, eax
jne 0x470793
mov eax, dword [ebp - 0x88]
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x5a
sete al
or eax, edx
test al, 1
jne 0x4704d7
cmp cl, 0x2b
je 0x4704d7
cmp cl, 0x2d
jne 0x470503
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f764
test eax, eax
jne 0x470503
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov dword [esi], 9
jmp 0x470763
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0x2d
jne 0x470793
inc eax
lea edx, [ebp - 0x88]
mov dword [ebp - 0x88], eax
lea eax, [esi + 8]
call fcn.0046f515
test eax, eax
jne 0x470793
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x470793
movzx edi, byte [esi + 0xc]
mov ebx, edi
and ebx, 0xf
mov eax, ebx
mov dword [ebp - 0x11c], ebx
dec eax
cmp eax, 0xb
ja 0x470793
test cl, 3
jne 0x47056a
mov edx, 0x64
mov eax, ecx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x47057a
mov edx, 0x190
mov eax, ecx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x470593
mov ax, word [esi + 0xc]
mov edx, edi
shr ax, 4
and edx, 0xf
and eax, 0x1f
cmp eax, dword [edx*4 + 0x64861c]
jmp 0x4705ab
mov ax, word [esi + 0xc]
mov edi, dword [ebp - 0x11c]
shr ax, 4
and eax, 0x1f
cmp eax, dword [edi*4 + 0x6485dc]
ja 0x470793
mov eax, dword [ebp - 0x88]
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x5a
sete al
or eax, edx
test al, 1
jne 0x4705d4
cmp cl, 0x2b
je 0x4705d4
cmp cl, 0x2d
jne 0x470600
lea eax, [esi + 8]
lea edx, [ebp - 0x88]
call fcn.0046f764
test eax, eax
jne 0x470600
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov dword [esi], 0xa
jmp 0x470763
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0x54
jne 0x470793
inc eax
lea ebx, [esi + 8]
mov dword [ebp - 0x88], eax
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.0046f596
test eax, eax
jne 0x470793
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.0046f764
cmp dword [ebp + 0x18], 0
mov ecx, eax
je 0x470678
mov eax, dword [ebp - 0x88]
mov bl, byte [eax]
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x470664
cmp bl, 0xd
jne 0x470678
mov edx, dword [ebp - 0x88]
lea eax, [edx + 1]
mov dword [ebp - 0x88], eax
mov bl, byte [edx + 1]
jmp 0x47064b
test ecx, ecx
jne 0x470793
mov eax, dword [ebp - 0x88]
cmp byte [eax], 0
jne 0x470793
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x470793
movzx edi, byte [esi + 0xc]
mov eax, edi
and eax, 0xf
mov dword [ebp - 0x11c], eax
dec eax
cmp eax, 0xb
ja 0x470793
test cl, 3
jne 0x4706c8
mov edx, 0x64
mov eax, ecx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x4706d8
mov edx, 0x190
mov eax, ecx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x4706f1
mov ax, word [esi + 0xc]
mov edx, edi
shr ax, 4
and edx, 0xf
and eax, 0x1f
cmp eax, dword [edx*4 + 0x64861c]
jmp 0x470709
mov ax, word [esi + 0xc]
mov edi, dword [ebp - 0x11c]
shr ax, 4
and eax, 0x1f
cmp eax, dword [edi*4 + 0x6485dc]
ja 0x470793
mov al, byte [esi + 0xd]
shr al, 1
and eax, 0x1f
cmp eax, 0x17
ja 0x470793
mov eax, dword [esi + 0xc]
shr eax, 0xe
and eax, 0x3f
cmp eax, 0x3b
ja 0x470793
fld qword [esi + 0x10]
fcom qword [0x648ab8]
fnstsw ax
sahf
jb 0x470791
fld dword [0x648aa8]
fcompp
fnstsw ax
sahf
jbe 0x470793
mov ax, word [esi + 0x18]
shl eax, 3
sar ax, 4
cwde
add eax, 0x347
cmp eax, 0x68e
ja 0x470793
mov dword [esi], 0xb
cmp dword [ebp - 0x114], 0
je 0x470776
mov edx, dword [ebp - 0x114]
cmp edx, dword [esi]
jne 0x470793
cmp dword [ebp + 8], 0
je 0x470783
mov ecx, dword [ebp + 8]
mov dword [ecx], esi
jmp 0x47078a
push esi
call fcn.0046f3b3
pop eax
xor eax, eax
jmp 0x470ffa
fstp st(0)
test esi, esi
je 0x47079e
push esi
call fcn.0046f3b3
pop eax
mov eax, 1
jmp 0x470ffa
lea eax, [ebp - 0x7c]
push 0x38
push 0x4fa910
push eax
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0x3c], 0x59
mov byte [ebp - 0x3b], 0x4d
mov byte [ebp - 0x3a], 0x44
mov byte [ebp - 0x39], 0x48
mov byte [ebp - 0x38], 0x4d
mov byte [ebp - 0x37], 0x53
mov ebx, edi
call fcn.004bdd50
add esp, 0xc
or edx, 0xffffffff
test edi, edi
je 0x470a9c
cmp dword [ebp + 0x18], 0
je 0x470824
mov cl, byte [edi]
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x47081f
cmp cl, 0xd
jne 0x470824
inc ebx
mov cl, byte [ebx]
jmp 0x470806
cmp byte [ebx], 0x2d
jne 0x470834
mov dword [ebp - 0xe8], 1
inc ebx
mov al, byte [ebx]
mov edx, 1
inc ebx
cmp al, 0x50
jne 0x470a9c
cmp byte [ebx], 0
je 0x470a9c
mov eax, 0xc
call fcn.0046e7f2
or edx, 0xffffffff
mov esi, eax
test eax, eax
je 0x470a9c
cmp byte [ebx], 0
je 0x470a5f
cmp dword [ebp - 0xec], 5
ja 0x470a8c
cmp byte [ebx], 0x54
jne 0x470899
cmp dword [ebp - 0xec], 3
ja 0x470a97
inc ebx
mov dword [ebp - 0xec], 3
jmp 0x4708a6
cmp dword [ebp - 0xec], 3
je 0x470a8c
mov al, byte [ebx]
sub eax, 0x30
fldz
cmp al, 9
ja 0x470a8a
fld dword [0x648aac]
movzx eax, byte [ebx]
inc ebx
sub eax, 0x30
push eax
fmul st(1), st(0)
mov dl, byte [ebx]
fild dword [esp]
lea eax, [edx - 0x30]
add esp, 4
faddp st(2)
cmp al, 9
jbe 0x4708bb
fstp st(0)
cmp dword [ebp - 0xf0], 0
jne 0x47092b
cmp dl, 0x2e
jne 0x470938
inc ebx
fld1
mov al, byte [ebx]
mov cl, al
lea edx, [eax - 0x30]
cmp dl, 0xa
sbb edi, edi
and edi, 2
dec edi
cmp dl, 9
mov dword [ebp - 0xf0], edi
ja 0x470929
fld qword [0x648ab0]
movzx eax, cl
sub eax, 0x30
fmul st(1), st(0)
push eax
inc ebx
fild dword [esp]
fmul st(2)
mov cl, byte [ebx]
add esp, 4
lea eax, [ecx - 0x30]
faddp st(3)
cmp al, 9
jbe 0x47090a
fstp st(0)
fstp st(0)
cmp dword [ebp - 0xf0], 0xffffffff
je 0x470a8a
mov al, byte [ebx]
test al, al
je 0x470a8a
cmp dword [ebp - 0xec], 5
ja 0x470a30
mov edx, dword [ebp - 0xec]
cmp al, byte [edx + ebp - 0x3c]
jne 0x470a15
cmp dword [ebp - 0xf0], 0
setne dl
xor eax, eax
cmp dword [ebp - 0xec], 4
setbe al
test eax, edx
jne 0x470a8a
cmp dword [ebp - 0xec], 0
je 0x470991
cmp dword [ebp - 0xec], 1
je 0x4709c8
jmp 0x4709fc
fnstcw word [ebp - 0xc2]
mov ax, word [ebp - 0xc2]
or ah, 0xc
mov word [ebp - 0xc4], ax
fldcw word [ebp - 0xc4]
fistp dword [ebp - 0xc8]
fldcw word [ebp - 0xc2]
mov eax, dword [ebp - 0xc8]
imul eax, eax, 0xc
mov dword [esi + 8], eax
jmp 0x470a32
fnstcw word [ebp - 0xc2]
mov ax, word [ebp - 0xc2]
or ah, 0xc
mov word [ebp - 0xc4], ax
fldcw word [ebp - 0xc4]
fistp dword [ebp - 0xc8]
fldcw word [ebp - 0xc2]
mov eax, dword [ebp - 0xc8]
add dword [esi + 8], eax
jmp 0x470a32
mov ecx, dword [ebp - 0xec]
fmul qword [ebp + ecx*8 - 0x7c]
inc ecx
fadd qword [esi + 0x10]
fstp qword [esi + 0x10]
mov dword [ebp - 0xec], ecx
jmp 0x470a32
inc dword [ebp - 0xec]
cmp dword [ebp - 0xec], 3
je 0x470a8a
cmp dword [ebp - 0xec], 6
jmp 0x47093c
fstp st(0)
inc ebx
cmp dword [ebp + 0x18], 0
je 0x470864
mov cl, byte [ebx]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x470a5c
cmp cl, 0xd
jne 0x470864
inc ebx
jmp 0x470a3d
cmp dword [ebp - 0xe8], 0
je 0x470a72
neg dword [esi + 8]
neg dword [esi + 0xc]
xor byte [esi + 0x17], 0x80
cmp dword [ebp + 8], 0
je 0x470a7f
mov ebx, dword [ebp + 8]
mov dword [ebx], esi
jmp 0x470a86
push esi
call fcn.0046f3b3
pop eax
xor edx, edx
jmp 0x470a9c
fstp st(0)
test esi, esi
je 0x470a97
push esi
call fcn.0046f3b3
pop edi
mov edx, 1
mov dword [ebp - 0xd4], edx
jmp case.default.0x46fd31
xor esi, esi
mov ecx, edi
cmp dword [ebp + 0x18], 0
je 0x470ad1
mov bl, byte [edi]
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x470acc
cmp bl, 0xd
jne 0x470ad1
inc ecx
mov bl, byte [ecx]
jmp 0x470ab3
mov al, byte [ecx]
cmp al, 0x4e
jne 0x470b49
cmp byte [ecx + 1], 0x61
jne 0x470b53
cmp byte [ecx + 2], 0x4e
jne 0x470b53
cmp byte [ecx + 3], 0
jne 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
mov edi, dword [ebp - 0xcc]
cmp edi, dword [0x667e68]
jne 0x470b27
mov eax, 0xd
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x470be7
fld qword [0x667c58]
fstp dword [eax + 8]
jmp 0x4717df
mov eax, 0xe
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x470be7
fld qword [0x667c58]
fstp qword [eax + 8]
jmp 0x4717df
cmp al, 0x2d
jne 0x470b53
mov esi, 1
inc ecx
mov al, byte [ecx]
cmp al, 0x49
jne 0x470bf3
cmp byte [ecx + 1], 0x4e
jne 0x470bf3
cmp byte [ecx + 2], 0x46
jne 0x470bf3
cmp byte [ecx + 3], 0
jne 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
mov edx, dword [ebp - 0xcc]
cmp edx, dword [0x667e68]
jne 0x470bbd
mov eax, 0xd
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x470be7
test esi, esi
je 0x470baf
fld qword [0x4fa5e0]
jmp 0x470bb5
fld qword [0x4fa5e8]
fstp dword [ebx + 8]
jmp 0x471d2e
mov eax, 0xe
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x470be7
test esi, esi
je 0x470bd9
fld qword [0x4fa5e0]
jmp 0x470bdf
fld qword [0x4fa5e8]
fstp qword [ebx + 8]
jmp 0x471d2e
push 0
call fcn.0046f3b3
jmp 0x471662
test esi, esi
jne 0x470c01
cmp al, 0x2b
sete al
movzx eax, al
add ecx, eax
mov bl, byte [ecx]
test bl, bl
sete dl
cmp bl, 0x2b
sete al
or eax, edx
test al, 1
jne 0x471eec
cmp bl, 0x2d
je 0x471eec
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x470c30
inc ecx
mov al, byte [ecx]
sub eax, 0x30
jmp 0x470c24
cmp byte [ecx], 0x2e
jne 0x470c3f
inc ecx
mov al, byte [ecx]
sub eax, 0x30
cmp al, 9
jbe 0x470c35
mov al, byte [ecx]
cmp al, 0x65
sete dl
cmp al, 0x45
sete al
or eax, edx
test al, 1
je 0x470c75
inc ecx
mov al, byte [ecx]
cmp al, 0x2d
sete dl
cmp al, 0x2b
sete al
or eax, edx
and eax, 1
cmp eax, 1
sbb ecx, 0xffffffff
mov al, byte [ecx]
sub eax, 0x30
cmp al, 9
ja 0x470c75
inc ecx
jmp 0x470c69
cmp dword [ebp + 0x18], 0
je 0x470c99
mov bl, byte [ecx]
cmp bl, 0x20
lea eax, [ebx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x470c96
cmp bl, 0xd
jne 0x470c99
inc ecx
jmp 0x470c7b
cmp byte [ecx], 0
jne 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
mov ebx, dword [ebp - 0xcc]
cmp ebx, dword [0x667e68]
jne 0x470ced
mov eax, 0xd
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
lea eax, [eax + 8]
push eax
push 0x648a11
push edi
call sub.msvcrt.dll_sscanf
add esp, 0xc
dec eax
jne 0x470d1a
mov edi, dword [ebp + 8]
mov dword [edi], ebx
jmp 0x471f09
mov eax, 0xe
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
lea eax, [eax + 8]
push eax
push 0x648a14
push edi
call sub.msvcrt.dll_sscanf
add esp, 0xc
dec eax
je 0x4717df
push ebx
call fcn.0046f3b3
jmp 0x471944
mov ecx, edi
mov bl, byte [edi]
cmp dword [ebp + 0x18], 0
je 0x470e11
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x470d4c
cmp bl, 0xd
jne 0x470d51
inc ecx
mov bl, byte [ecx]
jmp 0x470d33
mov al, byte [ecx]
cmp al, 0x30
jne 0x470d63
mov dword [ebp - 0xd4], 0
jmp 0x470d71
cmp al, 0x31
jne 0x470d74
mov dword [ebp - 0xd4], 1
inc ecx
jmp 0x470de4
cmp al, 0x74
jne 0x470da5
inc ecx
mov al, byte [ecx]
inc ecx
cmp al, 0x72
jne 0x471eec
mov al, byte [ecx]
inc ecx
cmp al, 0x75
jne 0x471eec
mov al, byte [ecx]
inc ecx
mov dword [ebp - 0xd4], 1
cmp al, 0x65
je 0x470de4
jmp 0x471eec
cmp al, 0x66
jne 0x471eec
inc ecx
mov al, byte [ecx]
inc ecx
cmp al, 0x61
jne 0x471eec
mov al, byte [ecx]
inc ecx
cmp al, 0x6c
jne 0x471eec
mov al, byte [ecx]
inc ecx
cmp al, 0x73
jne 0x471eec
mov al, byte [ecx]
inc ecx
cmp al, 0x65
jne 0x471eec
mov dword [ebp - 0xd4], 0
mov bl, byte [ecx]
test bl, bl
je 0x470eb4
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x470e07
cmp bl, 0xd
jne 0x470e0c
inc ecx
mov bl, byte [ecx]
jmp 0x470dee
cmp byte [ecx], 0
jmp 0x470e68
cmp bl, 0x30
jne 0x470e22
mov dword [ebp - 0xd4], 0
jmp 0x470e31
cmp bl, 0x31
jne 0x470e37
mov dword [ebp - 0xd4], 1
cmp byte [edi + 1], 0
jmp 0x470e68
cmp bl, 0x74
jne 0x470e6f
cmp byte [edi + 1], 0x72
jne 0x471eec
cmp byte [edi + 2], 0x75
jne 0x471eec
cmp byte [edi + 3], 0x65
jne 0x471eec
mov dword [ebp - 0xd4], 1
cmp byte [edi + 4], 0
je 0x470eb4
jmp 0x471eec
cmp bl, 0x66
jne 0x471eec
cmp byte [edi + 1], 0x61
jne 0x471eec
cmp byte [edi + 2], 0x6c
jne 0x471eec
cmp byte [edi + 3], 0x73
jne 0x471eec
cmp byte [edi + 4], 0x65
jne 0x471eec
cmp byte [edi + 5], 0
jne 0x471eec
mov dword [ebp - 0xd4], 0
cmp dword [ebp + 8], 0
je 0x471f09
mov eax, 0xf
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
mov edx, dword [ebp - 0xd4]
mov dword [eax + 8], edx
jmp 0x471d2e
mov ebx, edi
cmp dword [ebp + 0x18], 0
jne 0x470f33
cmp byte [edi], 0
je 0x470f33
mov cl, byte [ebx]
cmp cl, 0xd
sete dl
cmp cl, 0xa
sete al
or eax, edx
test al, 1
jne 0x471eec
cmp cl, 9
je 0x471eec
cmp cl, 0x20
lea eax, [ebx + 1]
jne 0x470f2c
mov dl, byte [eax]
mov ebx, eax
test dl, dl
je 0x471eec
cmp dl, 0x20
jne 0x470f2e
jmp 0x471eec
mov ebx, eax
cmp byte [eax], 0
jmp 0x470eeb
cmp dword [ebp + 8], 0
je 0x471f09
mov eax, 0x10
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
push edi
call fcn.00449b54
mov edi, dword [ebp + 8]
mov dword [ebx + 8], eax
mov dword [edi], ebx
jmp 0x4716c8
cmp dword [ebp + 0x18], 0
je 0x470f7d
push edi
call fcn.0046fa68
pop esi
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x470f7d
mov edi, eax
push edi
call fcn.00429525
pop ebx
cmp eax, 1
jne 0x471eec
mov al, 0x11
cmp dword [ebp + 8], 0
jne 0x4716ab
jmp 0x471f09
push 1
push edi
call fcn.0041d80d
pop edx
test eax, eax
pop ecx
jne 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
mov al, 0x12
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
push edi
call fcn.00449b54
mov edx, dword [ebp + 8]
mov dword [ebx + 8], eax
mov dword [edx], ebx
jmp 0x4716c8
push dword [ebp + 0xc]
push dword [ebp + 8]
mov edx, edi
mov eax, dword [0x667e58]
call fcn.00471f64
pop ebx
test eax, eax
pop esi
setle al
movzx eax, al
mov dword [ebp - 0xd4], eax
jmp case.default.0x46fd31
push 1
push edi
call fcn.0041d4cd
pop edx
test eax, eax
pop ecx
sete dl
mov dword [ebp - 0xd4], eax
xor eax, eax
cmp dword [ebp + 8], 0
setne al
test eax, edx
je case.default.0x46fd31
test edi, edi
je case.default.0x46fd31
mov eax, 0x14
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
mov esi, edi
mov cl, byte [esi]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x471064
cmp cl, 0xd
jne 0x471067
inc esi
jmp 0x471049
mov edi, esi
mov cl, byte [esi]
jmp 0x471075
cmp cl, 0xd
je 0x47108e
inc edi
mov cl, byte [edi]
test cl, cl
je 0x47108e
lea eax, [ecx - 9]
cmp cl, 0x20
setne dl
cmp al, 1
seta al
movzx eax, al
test eax, edx
jne 0x47106d
sub edi, esi
push edi
push esi
call fcn.00449b00
mov ecx, dword [ebp + 8]
mov dword [ebx + 8], eax
mov dword [ecx], ebx
pop ebx
pop esi
jmp case.default.0x46fd31
push 1
mov dword [ebp - 0xf4], 0
push edi
call fcn.0041cf88
xor esi, esi
pop edx
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne case.default.0x46fd31
cmp dword [ebp + 0xc], 0
je 0x471135
lea eax, [ebp - 0x8c]
push eax
push edi
call fcn.0041cb91
mov ebx, dword [ebp + 0xc]
push dword [ebp - 0x8c]
push dword [ebp + 0xc]
push dword [ebx + 0x20]
mov esi, eax
call fcn.0041f904
add esp, 0x14
test eax, eax
jne 0x47111a
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x471123
push eax
call dword [0x4fa8e0]
pop eax
test esi, esi
je 0x471eec
push esi
jmp 0x47193e
mov eax, dword [eax + 8]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x471135
push eax
call dword [0x4fa8e0]
pop eax
cmp dword [ebp + 8], 0
je 0x47118d
mov eax, 0x15
call fcn.0046e7f2
mov ebx, eax
test eax, eax
jne 0x471159
test esi, esi
je case.0x46fd31.0
push esi
jmp 0x47165c
test esi, esi
je 0x471162
mov dword [eax + 8], esi
jmp 0x47116c
push edi
call fcn.00449b54
mov dword [ebx + 8], eax
pop eax
cmp dword [ebp - 0xf4], 0
je 0x471633
push dword [ebp - 0xf4]
call fcn.00449b54
mov dword [ebx + 0xc], eax
pop edi
jmp 0x471633
test esi, esi
je case.default.0x46fd31
push esi
call dword [0x4fa8e0]
jmp 0x4711e6
push 1
push edi
call fcn.0041cc72
pop ebx
test eax, eax
pop esi
sete dl
mov dword [ebp - 0xd4], eax
xor eax, eax
cmp dword [ebp + 8], 0
setne al
test eax, edx
je case.default.0x46fd31
mov eax, 0x16
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
push edi
call fcn.00449b54
mov dword [ebx + 8], eax
mov eax, dword [ebp + 8]
mov dword [eax], ebx
pop ecx
jmp case.default.0x46fd31
push 1
push edi
call fcn.0041cc72
pop esi
test eax, eax
pop edx
mov dword [ebp - 0xd4], eax
sete al
movzx esi, al
cmp dword [ebp + 8], 0
setne al
test esi, eax
je 0x471232
mov eax, 0x17
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
push edi
call fcn.00449b54
mov edx, dword [ebp + 8]
mov dword [ebx + 8], eax
mov dword [edx], ebx
pop ebx
cmp dword [ebp + 0xc], 0
setne al
test esi, eax
je case.default.0x46fd31
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 4], 2
jne case.default.0x46fd31
cmp dword [ecx + 0x28], 2
je case.default.0x46fd31
mov eax, edi
call fcn.0046f962
mov ebx, eax
test eax, eax
je 0x471284
push dword [ebp + 0xc]
mov edi, dword [ebp + 0xc]
push eax
push dword [edi + 0x20]
push 0
call fcn.0043b494
push ebx
mov esi, eax
call dword [0x4fa8e0]
add esp, 0x14
jmp 0x47129a
push dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
push edi
push dword [eax + 0x20]
push 0
call fcn.0043b494
add esp, 0x10
mov esi, eax
test esi, esi
jne 0x4712ad
mov dword [ebp - 0xd4], 2
jmp case.default.0x46fd31
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x28], 2
jmp case.default.0x46fd31
push 1
push edi
call fcn.0041cc72
pop edx
test eax, eax
pop ecx
mov dword [ebp - 0xd4], eax
sete al
movzx esi, al
cmp dword [ebp + 8], 0
setne al
test esi, eax
je 0x471302
mov eax, 0x18
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
push edi
call fcn.00449b54
mov ecx, dword [ebp + 8]
mov dword [ebx + 8], eax
mov dword [ecx], ebx
pop eax
cmp dword [ebp + 0xc], 0
setne al
test esi, eax
je case.default.0x46fd31
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 4], 2
jne case.default.0x46fd31
mov eax, edi
call fcn.0046f962
mov ebx, eax
test eax, eax
je 0x471348
push dword [ebp + 0xc]
mov edi, dword [ebp + 0xc]
push eax
push dword [edi + 0x20]
push 0
call fcn.0043b97b
push ebx
call dword [0x4fa8e0]
add esp, 0x14
jmp 0x47135c
push dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
push edi
push dword [eax + 0x20]
push 0
call fcn.0043b97b
add esp, 0x10
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x28], 3
jmp case.default.0x46fd31
push dword [ebp + 0xc]
push dword [ebp + 8]
mov edx, edi
mov eax, dword [0x667e48]
call fcn.00471f64
pop esi
sar eax, 0x1f
pop edi
and eax, 2
sete dl
mov dword [ebp - 0xd4], eax
xor eax, eax
cmp dword [ebp + 0xc], 0
setne al
test eax, edx
je case.default.0x46fd31
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 4], 2
jne case.default.0x46fd31
mov dword [ecx + 0x28], 4
jmp case.default.0x46fd31
push 1
push edi
call fcn.0041cc72
pop ecx
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0xd4], eax
pop ebx
je 0x4713d7
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0x20], 0
jne 0x4713e3
mov dword [ebp - 0xd4], 3
jmp 0x471437
cmp dword [ebp - 0xd4], 0
jne 0x471437
mov eax, edi
call fcn.0046f962
mov ebx, eax
test eax, eax
je 0x471413
mov edi, dword [ebp + 0xc]
push eax
push dword [edi + 0x20]
call fcn.00425397
push ebx
mov esi, eax
call dword [0x4fa8e0]
add esp, 0xc
jmp 0x471423
mov eax, dword [ebp + 0xc]
push edi
push dword [eax + 0x20]
call fcn.00425397
mov esi, eax
pop eax
pop edx
test esi, esi
je 0x47142d
cmp dword [esi + 0x30], 3
je 0x471437
mov dword [ebp - 0xd4], 4
xor ebx, ebx
cmp dword [ebp - 0xd4], 0
sete bl
cmp dword [ebp + 8], 0
setne al
test ebx, eax
je 0x47146c
push 0xb01
push str.C:_Programme_blitzmax_mod_bah.mod_libxml.mod_src_xmlschemastypes.c
push 0x648a5b
push dword [0x667cd4]
call dword [0x4fa8b8]
add esp, 0x10
cmp dword [ebp + 0xc], 0
setne al
test ebx, eax
je case.default.0x46fd31
mov edx, dword [ebp + 0xc]
cmp dword [edx + 4], 2
jne case.default.0x46fd31
mov dword [edx + 0x28], 5
jmp case.default.0x46fd31
cmp dword [ebp + 0xc], 0
je 0x471ecf
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x20], 0
je 0x471ecf
push ecx
mov edx, edi
push dword [ebp + 8]
mov eax, dword [0x667e38]
call fcn.00471f64
pop esi
test eax, eax
pop edi
setle al
movzx eax, al
mov dword [ebp - 0xd4], eax
test eax, eax
jne case.default.0x46fd31
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 4], 2
jne case.default.0x46fd31
mov dword [ebx + 0x28], 6
jmp case.default.0x46fd31
push 1
mov dword [ebp - 0xf8], 0
push edi
call fcn.0041cf88
xor esi, esi
test eax, eax
mov dword [ebp - 0xd4], eax
pop ecx
sete dl
xor eax, eax
pop ebx
cmp dword [ebp + 0xc], 0
setne al
test eax, edx
je 0x4715a5
lea eax, [ebp - 0x90]
push eax
push edi
call fcn.0041cb91
mov esi, eax
pop eax
mov eax, dword [ebp - 0x90]
pop edx
test eax, eax
je 0x471570
push eax
mov eax, dword [ebp + 0xc]
push dword [ebp + 0xc]
push dword [eax + 0x20]
call fcn.0041f904
add esp, 0xc
test eax, eax
jne 0x47155b
mov dword [ebp - 0xd4], 1
jmp 0x471570
cmp dword [ebp + 8], 0
je 0x471570
push dword [eax + 8]
call fcn.00449b54
mov dword [ebp - 0xf8], eax
pop eax
test esi, esi
je 0x471593
cmp dword [ebp + 8], 0
sete dl
cmp dword [ebp - 0xd4], 0
setne al
or eax, edx
test al, 1
je 0x471593
push esi
call dword [0x4fa8e0]
pop eax
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x4715a5
push eax
call dword [0x4fa8e0]
pop eax
cmp dword [ebp + 0xc], 0
je 0x4715b5
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x20]
test eax, eax
jne 0x4715c1
mov dword [ebp - 0xd4], 3
jmp 0x4715e3
cmp dword [ebp - 0xd4], 0
jne 0x4715e3
push edi
push eax
push 0
call fcn.0043bce5
add esp, 0xc
dec eax
setne al
movzx eax, al
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0
sete dl
xor eax, eax
cmp dword [ebp + 8], 0
setne al
test eax, edx
je case.default.0x46fd31
mov eax, 0x1c
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x47163d
test esi, esi
je 0x471617
mov dword [eax + 8], esi
jmp 0x471621
push edi
call fcn.00449b54
mov dword [ebx + 8], eax
pop edi
cmp dword [ebp - 0xf8], 0
je 0x471633
mov ecx, dword [ebp - 0xf8]
mov dword [ebx + 0xc], ecx
mov edi, dword [ebp + 8]
mov dword [edi], ebx
jmp case.default.0x46fd31
test esi, esi
je 0x471649
push esi
call dword [0x4fa8e0]
pop esi
cmp dword [ebp - 0xf8], 0
je case.0x46fd31.0
push dword [ebp - 0xf8]
call dword [0x4fa8e0]
pop ebx
jmp case.0x46fd31.0
cmp byte [edi], 0
je 0x47169c
cmp dword [ebp + 0x18], 0
je 0x471686
push edi
call fcn.0046fa68
pop ecx
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x471686
mov edi, eax
push edi
call fcn.004283e1
pop edx
test eax, eax
je 0x471eec
push eax
call fcn.004265d1
pop eax
cmp dword [ebp + 8], 0
je 0x471f09
mov eax, 0x1d
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
push edi
call fcn.00449b54
mov dword [ebx + 8], eax
mov eax, dword [ebp + 8]
mov dword [eax], ebx
pop eax
jmp 0x471f09
mov esi, edi
mov dword [ebp - 0xfc], 0
test edi, edi
je 0x471eec
cmp dword [ebp + 0x18], 0
je 0x471708
mov cl, byte [edi]
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x471703
cmp cl, 0xd
jne 0x471708
inc esi
mov cl, byte [esi]
jmp 0x4716ea
mov edi, esi
mov cl, byte [esi]
lea eax, [ecx - 0x30]
cmp al, 9
lea eax, [ecx - 0x41]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x471729
lea eax, [ecx - 0x61]
cmp al, 5
ja 0x471732
inc dword [ebp - 0xfc]
inc esi
jmp 0x47170a
cmp dword [ebp + 0x18], 0
je 0x471756
mov cl, byte [esi]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x471753
cmp cl, 0xd
jne 0x471756
inc esi
jmp 0x471738
cmp byte [esi], 0
jne 0x471eec
test byte [ebp - 0xfc], 1
jne 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
mov eax, 0x2b
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
push dword [ebp - 0xfc]
push edi
call fcn.00449b00
mov esi, eax
pop edi
mov edx, str.allocating_hexbin_data
pop eax
test esi, esi
je 0x471935
mov edx, 2
mov eax, dword [ebp - 0xfc]
mov edi, edx
cdq
idiv edi
mov ecx, eax
mov edx, esi
mov eax, dword [ebp - 0xfc]
dec dword [ebp - 0xfc]
test eax, eax
jle 0x4717d9
mov al, byte [edx]
cmp al, 0x60
jbe 0x4717d6
sub eax, 0x20
mov byte [edx], al
inc edx
jmp 0x4717bb
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], ecx
mov eax, dword [ebp + 8]
mov dword [eax], ebx
jmp 0x471f09
mov esi, edi
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x10c], 0
test edi, edi
je 0x471eec
cmp byte [edi], 0
je 0x47182b
movzx eax, byte [esi]
call fcn.0046f911
test eax, eax
js 0x471823
cmp eax, 0x3f
jg 0x47182b
inc dword [ebp - 0x108]
inc esi
cmp byte [esi], 0
jne 0x47180c
jmp 0x471857
cmp byte [esi], 0
je 0x471857
movzx eax, byte [esi]
call fcn.0046f911
test eax, eax
js 0x471845
cmp eax, 0x3f
jle 0x471eec
cmp eax, 0x40
sete al
movzx eax, al
add dword [ebp - 0x10c], eax
inc esi
jmp 0x47182b
mov edx, 4
mov eax, dword [ebp - 0x108]
mov ebx, edx
cdq
idiv ebx
imul ecx, eax, 3
cmp dword [ebp - 0x10c], 0
mov dword [ebp - 0x104], ecx
jne 0x471887
test byte [ebp - 0x108], 3
je 0x4718f0
jmp 0x471eec
cmp dword [ebp - 0x10c], 1
jne 0x4718bb
cmp edx, 3
jne 0x471eec
movzx eax, byte [esi]
call fcn.0046f911
cmp eax, 0x3f
jbe 0x4718a9
dec esi
jmp 0x471899
and eax, 0xffffffc3
jne 0x471eec
add dword [ebp - 0x104], 2
jmp 0x4718f0
cmp dword [ebp - 0x10c], 2
jne 0x471eec
cmp edx, 2
jne 0x471eec
movzx eax, byte [esi]
call fcn.0046f911
cmp eax, 0x3f
jbe 0x4718e1
dec esi
jmp 0x4718d1
and eax, 0xffffffcf
jne 0x471eec
inc dword [ebp - 0x104]
cmp dword [ebp + 8], 0
je 0x471f09
mov eax, 0x2c
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je case.0x46fd31.0
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x10c]
lea eax, [edx + ecx + 1]
push eax
call dword [0x4fa8d8]
pop esi
test eax, eax
mov dword [ebp - 0x100], eax
jne 0x47194a
mov edx, str.allocating_base64_data
mov eax, dword [ebp + 0xc]
call fcn.0046e7e0
push ebx
call dword [0x4fa8e0]
pop ebx
jmp 0x471eec
mov eax, dword [ebp - 0x100]
mov esi, edi
mov dword [ebx + 8], eax
cmp byte [esi], 0
je 0x471986
mov dl, byte [esi]
movzx eax, dl
mov byte [ebp - 0x10d], dl
call fcn.0046f911
test eax, eax
js 0x471983
mov edi, dword [ebp - 0x100]
mov cl, byte [ebp - 0x10d]
mov byte [edi], cl
inc edi
mov dword [ebp - 0x100], edi
inc esi
jmp 0x471955
mov eax, dword [ebp - 0x100]
mov byte [eax], 0
mov edx, dword [ebp - 0x104]
mov dword [ebx + 0xc], edx
jmp 0x471d2e
xor esi, esi
mov dword [ebp - 0xa0], edi
test edi, edi
je 0x471eec
cmp dword [ebp + 0x18], 0
je 0x4719e2
mov cl, byte [edi]
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x4719ce
cmp cl, 0xd
jne 0x4719e2
mov edx, dword [ebp - 0xa0]
lea eax, [edx + 1]
mov dword [ebp - 0xa0], eax
mov cl, byte [edx + 1]
jmp 0x4719b5
mov eax, dword [ebp - 0xa0]
mov dl, byte [eax]
cmp dl, 0x2d
jne 0x4719f6
mov esi, 1
jmp 0x4719fb
cmp dl, 0x2b
jne 0x471a02
inc eax
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0x94]
lea edx, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xa0]
call fcn.0046fba5
pop edx
pop ecx
mov dword [ebp - 0xd4], eax
inc eax
je 0x471eec
cmp dword [ebp + 0x18], 0
je 0x471a6b
mov eax, dword [ebp - 0xa0]
mov cl, byte [eax]
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x471a57
cmp cl, 0xd
jne 0x471a6b
mov edx, dword [ebp - 0xa0]
lea eax, [edx + 1]
mov dword [ebp - 0xa0], eax
mov cl, byte [edx + 1]
jmp 0x471a3e
mov eax, dword [ebp - 0xa0]
cmp byte [eax], 0
jne 0x471eec
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 0x58]
cmp eax, 0x1f
jne 0x471a8c
test esi, esi
jmp 0x471acb
cmp eax, 0x22
jne 0x471a96
cmp esi, 1
jmp 0x471a9d
cmp eax, 0x20
jne 0x471ac3
test esi, esi
je 0x471eec
cmp dword [ebp - 0x94], 0
jne 0x471af4
cmp dword [ebp - 0x98], 0
jne 0x471af4
cmp dword [ebp - 0x9c], 0
jne 0x471af4
jmp 0x471eec
cmp eax, 0x21
jne 0x471af4
cmp esi, 1
jne 0x471af4
cmp dword [ebp - 0x94], 0
jne 0x471eec
cmp dword [ebp - 0x98], 0
jne 0x471eec
cmp dword [ebp - 0x9c], 0
jne 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x471f09
cmp dword [ebp - 0xd4], 0
jne 0x471b20
mov dword [ebp - 0xd4], 1
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x98]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x94]
jmp 0x471d1d
xor esi, esi
mov dword [ebp - 0xb0], edi
test edi, edi
je 0x471eec
mov al, byte [edi]
cmp al, 0x2d
jne 0x471b59
mov si, 1
jmp 0x471b5d
cmp al, 0x2b
jne 0x471b66
lea eax, [edi + 1]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xa4]
lea edx, [ebp - 0xac]
push eax
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0xb0]
call fcn.0046fba5
pop ebx
test eax, eax
pop edi
mov dword [ebp - 0xd4], eax
js 0x471eec
mov eax, dword [ebp - 0xb0]
cmp byte [eax], 0
jne 0x471eec
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 0x58]
cmp eax, 0x25
jne 0x471c19
mov edx, dword [ebp - 0xa4]
cmp edx, 0x399
jbe 0x471cec
cmp edx, 0x39a
ja 0x471eec
mov edx, dword [ebp - 0xa8]
cmp edx, 0x202882f
jbe 0x471cec
cmp edx, 0x2028830
ja 0x471eec
test esi, esi
jne 0x471c01
cmp dword [ebp - 0xac], 0x343cfff
jmp 0x471ce6
cmp esi, 1
jne 0x471cec
cmp dword [ebp - 0xac], 0x343d000
jmp 0x471ce6
cmp eax, 0x23
jne 0x471c6b
cmp dword [ebp - 0xa4], 0
jne 0x471eec
mov edx, dword [ebp - 0xa8]
cmp edx, 0x14
jbe 0x471cec
cmp edx, 0x15
ja 0x471eec
test esi, esi
jne 0x471c56
cmp dword [ebp - 0xac], 0x2d48aff
jmp 0x471ce6
cmp esi, 1
jne 0x471cec
cmp dword [ebp - 0xac], 0x2d48b00
jmp 0x471ce6
cmp eax, 0x27
jne 0x471cab
cmp dword [ebp - 0xa8], 0
jne 0x471eec
cmp dword [ebp - 0xa4], 0
jne 0x471eec
cmp esi, 1
jne 0x471c9b
cmp dword [ebp - 0xac], 0x8000
jmp 0x471ce6
test esi, esi
jne 0x471cec
cmp dword [ebp - 0xac], 0x7fff
jmp 0x471ce6
cmp eax, 0x29
jne 0x471cec
cmp dword [ebp - 0xa8], 0
jne 0x471eec
cmp dword [ebp - 0xa4], 0
jne 0x471eec
cmp esi, 1
jne 0x471cdb
cmp dword [ebp - 0xac], 0x80
jmp 0x471ce6
test esi, esi
jne 0x471cec
cmp dword [ebp - 0xac], 0x7f
ja 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x471f09
mov eax, dword [ebp - 0xac]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebx + 0x10], eax
mov eax, esi
mov byte [ebx + 0x18], al
mov dl, byte [ebp - 0xd4]
mov byte [ebx + 0x19], dl
mov ecx, dword [ebp + 8]
mov dword [ecx], ebx
jmp 0x471f09
mov dword [ebp - 0xc0], edi
test edi, edi
je 0x471eec
lea eax, [ebp - 0xb4]
lea edx, [ebp - 0xbc]
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0xc0]
call fcn.0046fba5
pop edx
test eax, eax
pop ecx
mov dword [ebp - 0xd4], eax
js 0x471eec
mov eax, dword [ebp - 0xc0]
cmp byte [eax], 0
jne 0x471eec
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 0x58]
cmp eax, 0x26
jne 0x471ddd
mov edx, dword [ebp - 0xb4]
cmp edx, 0x733
jbe 0x471e69
cmp edx, 0x734
ja 0x471eec
mov edx, dword [ebp - 0xb8]
cmp edx, 0x4051060
jbe 0x471e69
cmp edx, 0x4051061
ja 0x471eec
cmp dword [ebp - 0xbc], 0x91beff
jmp 0x471e63
cmp eax, 0x24
jne 0x471e0f
cmp dword [ebp - 0xb4], 0
jne 0x471eec
mov edx, dword [ebp - 0xb8]
cmp edx, 0x29
jbe 0x471e69
cmp edx, 0x2a
ja 0x471eec
cmp dword [ebp - 0xbc], 0x5a915ff
jmp 0x471e63
cmp eax, 0x28
jne 0x471e3a
cmp dword [ebp - 0xb8], 0
jne 0x471eec
cmp dword [ebp - 0xb4], 0
jne 0x471eec
cmp dword [ebp - 0xbc], 0xffff
jmp 0x471e63
cmp eax, 0x2a
jne 0x471e69
cmp dword [ebp - 0xb8], 0
jne 0x471eec
cmp dword [ebp - 0xb4], 0
jne 0x471eec
cmp dword [ebp - 0xbc], 0xff
ja 0x471eec
cmp dword [ebp + 8], 0
je 0x471f09
call fcn.0046e7f2
mov ebx, eax
test eax, eax
je 0x471f09
mov eax, dword [ebp - 0xbc]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebx + 0x10], eax
mov byte [ebx + 0x18], 0
mov al, byte [ebp - 0xd4]
mov byte [ebx + 0x19], al
mov edx, dword [ebp + 8]
mov dword [edx], ebx
jmp 0x471f09
cmp dword [ebp - 0xd0], 0
je 0x471ec7
push dword [ebp - 0xd0]
call dword [0x4fa8e0]
pop eax
mov eax, dword [ebp - 0xd4]
jmp 0x471f3c
cmp dword [ebp - 0xd0], 0
je 0x471ee5
push dword [ebp - 0xd0]
call dword [0x4fa8e0]
pop eax
mov eax, 3
jmp 0x471f3c
cmp dword [ebp - 0xd0], 0
je 0x471f02
push dword [ebp - 0xd0]
call dword [0x4fa8e0]
pop eax
mov eax, 1
jmp 0x471f3c
cmp dword [ebp - 0xd0], 0
je 0x471f1f
push dword [ebp - 0xd0]
call dword [0x4fa8e0]
pop eax
xor eax, eax
jmp 0x471f3c
cmp dword [ebp - 0xd0], 0
je 0x471f39
push dword [ebp - 0xd0]
call dword [0x4fa8e0]
pop eax
or eax, 0xffffffff
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret