Function at 0x47b610
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ecx, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [ebp - 0x24], edx
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x1c]
cmp ecx, 0x2e
ja case.0x47b638.0
jmp dword [ecx*4 + 0x74c65c]
push 0x1325
push str.C:_BlitzMax_mod_bah.mod_libxml.mod_src_xmlschemastypes.c
push 0x74c3e9
mov ecx, dword [0x78d288]
push ecx
call dword [0x69a2a8]
add esp, 0x10
mov edx, 0xfffffffe
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, edx
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x47b67c
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x47b68f
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
mov dword [ebp - 0x48], eax
cmp ebx, 0x15
je 0x47c08b
cmp ebx, 0x2e
sete dl
cmp ebx, 1
sete al
or eax, edx
test al, 1
je 0x47bc14
cmp edi, 1
je 0x47bee0
cmp edi, 2
je 0x47c058
cmp edi, 3
jne case.0x47b638.0
cmp esi, 1
je 0x47c231
cmp esi, 2
je 0x47c265
cmp esi, 3
jne case.0x47b638.0
mov bl, byte [ecx]
mov esi, ecx
cmp bl, 0x20
mov edi, dword [ebp - 0x48]
lea eax, [ebx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
je 0x47c6f1
inc esi
mov bl, byte [esi]
cmp bl, 0x20
lea eax, [ebx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x47b6fb
cmp bl, 0xd
je 0x47b6fb
mov edx, dword [ebp - 0x48]
mov cl, byte [edx]
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
je 0x47bc8f
inc edi
mov cl, byte [edi]
jmp 0x47b71c
mov eax, dword [ebp - 0x24]
test eax, eax
mov eax, dword [ebp - 0x28]
sete dl
test eax, eax
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
cmp ebx, 0xb
sete dl
cmp ebx, 4
sete al
or eax, edx
test al, 1
je 0x47baf6
mov eax, dword [ebp - 0x24]
mov ecx, 0xfffffffe
test eax, eax
mov eax, dword [ebp - 0x28]
sete dl
test eax, eax
sete al
or eax, edx
test al, 1
jne 0x47be62
mov eax, dword [ebp - 0x24]
test byte [eax + 0x18], 1
je 0x47bf13
mov edx, dword [ebp - 0x28]
test byte [edx + 0x18], 1
je 0x47c295
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov eax, dword [edx]
mov edx, dword [ecx]
cmp eax, edx
je 0x47c40a
sub eax, 4
xor ecx, ecx
cmp eax, 7
ja case.default.0x47b7c7
jmp dword [eax*4 + 0x74c718]
mov eax, dword [ebp - 0x24]
test eax, eax
mov eax, dword [ebp - 0x28]
sete dl
test eax, eax
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
cmp ebx, 0xc
jne 0x47b663
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], 1
fld qword [ebx + 0x10]
fld qword [edx + 0x10]
fsubrp st(1)
mov ecx, dword [edx + 8]
mov edi, dword [ebx + 8]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
sub ecx, edi
fld st(0)
fmul qword [0x74c644]
mov ah, 0xc
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov edx, dword [ebp - 0x20]
push edx
mov ebx, dword [ebp - 0x24]
fild dword [esp]
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x28]
fmul dword [0x74c64c]
add esp, 4
mov esi, dword [ebx + 0xc]
sub eax, esi
test ecx, ecx
fsubp st(1)
lea edx, [eax + edx]
jne 0x47bb42
test edx, edx
jne 0x47c047
fldz
fxch st(1)
xor ebx, ebx
fcom st(1)
fnstsw ax
test ah, 0x40
jne 0x47c226
fcompp
fnstsw ax
test ah, 5
sete al
xor ebx, ebx
mov bl, al
lea ebx, [ebx + ebx - 1]
mov edx, ebx
jmp 0x47b663
mov eax, dword [ebp - 0x24]
test eax, eax
mov eax, dword [ebp - 0x28]
sete dl
test eax, eax
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
lea eax, [ebx - 0xd]
cmp eax, 1
ja 0x47b663
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
cmp eax, 0xe
je 0x47bed8
mov edx, 0xfffffffe
cmp eax, 0xd
jne 0x47b663
mov eax, dword [ebp - 0x24]
fld dword [eax + 8]
mov edx, dword [ebp - 0x28]
fstp qword [ebp - 0x58]
mov eax, dword [edx]
cmp eax, 0xe
je 0x47c095
mov edx, 0xfffffffe
cmp eax, 0xd
jne 0x47b663
mov ecx, dword [ebp - 0x28]
fld dword [ecx + 8]
push eax
push eax
mov eax, dword [ebp - 0x54]
push eax
mov edi, dword [ebp - 0x58]
push edi
fstp qword [ebp - 0x68]
call fcn.00437390
add esp, 0x10
fld qword [ebp - 0x68]
test eax, eax
je 0x47c168
sub esp, 0x10
fstp qword [esp]
call fcn.00437390
add esp, 0x10
test eax, eax
sete al
xor edx, edx
mov dl, al
jmp 0x47b663
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
test esi, esi
sete dl
test ecx, ecx
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
cmp ebx, 0xf
jne 0x47b663
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov eax, dword [edx + 8]
xor edx, edx
cmp eax, dword [ecx + 8]
je 0x47b663
cmp eax, 1
sbb edx, edx
or edx, 1
jmp 0x47b663
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
test eax, eax
sete dl
test edi, edi
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
cmp ebx, 0x15
sete dl
cmp ebx, 0x1c
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
je 0x47b663
push esi
push esi
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ecx + 8]
push ebx
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebx + 8]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x47b9fc
push edx
push edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.004623e0
add esp, 0x10
xor edx, edx
test eax, eax
jne 0x47b663
mov edx, 2
jmp 0x47b663
mov eax, dword [ebp - 0x24]
test eax, eax
mov eax, dword [ebp - 0x28]
sete dl
test eax, eax
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
cmp ebx, ecx
je 0x47ba51
cmp ebx, 3
sete dl
cmp ebx, 0x1e
sete al
or eax, edx
test al, 1
jne 0x47ba51
cmp ebx, 0x1f
sete dl
cmp ebx, 0x20
sete al
or eax, edx
test al, 1
je 0x47c0f5
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0047a3a0
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
test edx, edx
sete dl
test eax, eax
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
cmp ebx, 0x2b
jne 0x47b663
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebx + 0xc]
cmp dword [edx + 0xc], eax
je 0x47c09d
jbe 0x47bc87
mov edx, 1
jmp 0x47b663
mov eax, dword [ebp - 0x24]
test eax, eax
mov eax, dword [ebp - 0x28]
sete dl
test eax, eax
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b663
cmp ebx, 0x2c
jne 0x47b663
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebx + 0xc]
cmp edx, eax
je 0x47c0c9
cmp eax, edx
sbb edx, edx
and edx, 2
dec edx
jmp 0x47b663
cmp ebx, 5
sete dl
cmp ebx, 6
sete al
or eax, edx
test al, 1
jne 0x47b76e
cmp ebx, 7
sete dl
cmp ebx, 8
sete al
or eax, edx
test al, 1
jne 0x47b76e
cmp ebx, 0xa
sete dl
cmp ebx, 9
sete al
or eax, edx
mov edx, 0xfffffffe
test al, 1
jne 0x47b76e
jmp 0x47b663
jle 0x47c242
test edx, edx
js 0x47c276
fcomp qword [0x74c654]
fnstsw ax
mov ebx, 1
test ah, 5
je 0x47b889
mov esi, ecx
neg edx
mov eax, esi
mov dword [ebp - 0x30], edx
mov edx, 0x2aaaaaab
xor edi, edi
imul edx
mov eax, esi
xor ecx, ecx
sar edx, 1
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
je 0x47bbc3
mov eax, ebx
add eax, 3
js 0x47c6a9
mov edx, eax
sar edx, 2
lea eax, [edx + edx*8]
lea eax, [edx + eax*8]
lea eax, [eax + eax*4]
lea ecx, [eax + edx]
lea edx, [ebx - 1]
mov eax, edx
test edx, edx
js 0x47c6a1
and eax, 0xfffffffc
sub edx, eax
lea eax, [edx + edx*8]
lea eax, [edx + eax*8]
lea eax, [eax + eax*4]
add ecx, eax
lea edi, [ecx - 1]
mov eax, 0xc
mov edx, esi
sar edx, 0x1f
mov ebx, eax
mov eax, esi
idiv ebx
mov eax, dword [edx*4 + 0x74c5e4]
add edi, eax
mov eax, dword [edx*4 + 0x74c614]
add ecx, eax
cmp ecx, edi
sete dl
cmp ecx, dword [ebp - 0x30]
sete al
and eax, 0xff
xor bl, bl
test edx, eax
jne 0x47b889
cmp ecx, dword [ebp - 0x30]
jge 0x47c27d
mov ebx, dword [ebp - 0x2c]
neg ebx
mov edx, ebx
jmp 0x47b663
cmp ebx, 2
sete dl
cmp ebx, 0x10
sete al
or eax, edx
test al, 1
jne 0x47b6ae
cmp ebx, 0x11
sete dl
cmp ebx, 0x12
sete al
or eax, edx
test al, 1
jne 0x47b6ae
cmp ebx, 0x14
sete dl
cmp ebx, 0x16
sete al
or eax, edx
test al, 1
jne 0x47b6ae
cmp ebx, 0x17
sete dl
cmp ebx, 0x18
sete al
or eax, edx
test al, 1
jne 0x47b6ae
cmp ebx, 0x1a
sete dl
cmp ebx, 0x1d
sete al
or eax, edx
test al, 1
je case.0x47b638.0
jmp 0x47b6ae
or edx, 0xffffffff
jmp 0x47b663
cmp cl, 0xd
je 0x47b734
test bl, bl
je 0x47bce8
mov cl, byte [edi]
test cl, cl
je 0x47c669
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
and eax, 1
mov dword [ebp - 0x4c], eax
jne 0x47c1b2
cmp bl, 0xd
je 0x47c1b2
xor edx, edx
xor eax, eax
mov dl, bl
mov al, cl
sub edx, eax
inc edi
inc esi
cmp edx, 0
jl 0x47bc87
jg 0x47baa3
mov bl, byte [esi]
test bl, bl
jne 0x47bc9c
mov cl, byte [edi]
test cl, cl
je 0x47bed1
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
je 0x47bebd
inc edi
mov cl, byte [edi]
jmp 0x47bcf2
mov cl, 3
lea eax, [edx - 4]
xor edx, edx
cmp eax, 7
ja case.default.0x47bd1b
jmp dword [eax*4 + 0x74c738]
mov dl, 3
mov bl, cl
and ecx, edx
xor ebx, edx
mov esi, ecx
test bl, 1
mov ecx, 2
jne 0x47be62
test esi, 1
je 0x47bd5d
mov edx, dword [ebp - 0x28]
or ecx, 0xffffffff
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x24]
cmp dword [edx + 8], eax
jl 0x47be62
jg 0x47c61f
mov ecx, 2
test bl, 2
jne 0x47be62
test esi, 2
je 0x47bd9a
mov ecx, dword [ebp - 0x24]
xor edx, edx
xor eax, eax
mov dl, byte [ecx + 0xc]
mov ecx, dword [ebp - 0x28]
and edx, 0xf
mov al, byte [ecx + 0xc]
or ecx, 0xffffffff
and eax, 0xf
cmp edx, eax
jl 0x47be62
jg 0x47c61f
mov ecx, 2
test bl, 4
jne 0x47be62
test esi, 4
je 0x47bddd
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov dx, word [eax + 0xc]
mov ax, word [ecx + 0xc]
shr dx, 4
or ecx, 0xffffffff
shr ax, 4
and edx, 0x1f
and eax, 0x1f
cmp edx, eax
jl 0x47be62
jg 0x47c61f
and ebx, 8
mov ecx, 2
jne 0x47be62
and esi, 8
je 0x47be60
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov al, byte [ecx + 0xd]
mov dl, byte [ebx + 0xd]
shr dl, 1
or ecx, 0xffffffff
shr al, 1
and edx, 0x1f
and eax, 0x1f
cmp edx, eax
jl 0x47be62
jg 0x47c61f
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov eax, dword [ecx + 0xc]
mov edx, dword [ebx + 0xc]
shr edx, 0xe
or ecx, 0xffffffff
shr eax, 0xe
and edx, 0x3f
and eax, 0x3f
cmp edx, eax
jl 0x47be62
jg 0x47c61f
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
or ecx, 0xffffffff
fld qword [ebx + 0x10]
fld qword [eax + 0x10]
fxch st(1)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x47c9ac
fcompp
fnstsw ax
mov ecx, 1
test ah, 0x45
je 0x47be62
xor ecx, ecx
mov edx, ecx
jmp 0x47b663
mov dl, 1
jmp case.default.0x47bd1b
mov dl, 6
jmp case.default.0x47bd1b
mov dl, 0xf
jmp case.default.0x47bd1b
mov dl, 7
jmp case.default.0x47bd1b
mov dl, 2
jmp case.default.0x47bd1b
mov dl, 8
jmp case.default.0x47bd1b
mov cl, 0xf
jmp case.default.0x47b7c7
mov cl, 7
jmp case.default.0x47b7c7
mov cl, 6
jmp case.default.0x47b7c7
mov cl, 2
jmp case.default.0x47b7c7
mov cl, 8
jmp case.default.0x47b7c7
mov cl, 1
jmp case.default.0x47b7c7
cmp cl, 0xd
je 0x47bd0a
or edx, 0xffffffff
test cl, cl
jne 0x47b663
xor edx, edx
jmp 0x47b663
fld qword [edx + 8]
jmp 0x47b8dd
cmp esi, 1
je 0x47c62b
cmp esi, 2
je 0x47c540
cmp esi, 3
jne case.0x47b638.0
mov dword [ebp + 8], 0
mov edx, dword [ebp - 0x48]
mov eax, ecx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0047b300
mov ebx, dword [ebp - 0x28]
test byte [ebx + 0x18], 1
je 0x47b7a7
push eax
push eax
mov eax, ebx
push 0
push 0
call fcn.0047a7b0
add esp, 0x10
mov esi, eax
call fcn.0047b130
mov dx, word [esi + 0xc]
shr dx, 4
and edx, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
push eax
push eax
push 0xc0e89c00
push 0
mov eax, dword [ebp - 0x24]
call fcn.0047a7b0
add esp, 0x10
mov ebx, eax
call fcn.0047b130
mov dx, word [ebx + 0xc]
shr dx, 4
and edx, 0x1f
lea edi, [eax + edx]
cmp edi, dword [ebp - 0x38]
jl 0x47c029
jne 0x47c558
mov al, byte [ebx + 0xd]
shr al, 1
and eax, 0x1f
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [ebx + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [ebx + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
push edx
mov al, byte [esi + 0xd]
shr al, 1
and eax, 0x1f
fild dword [esp]
fadd qword [ebx + 0x10]
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [esi + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [esi + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
mov dword [esp], edx
fild dword [esp]
fadd qword [esi + 0x10]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fcompp
fnstsw ax
test ah, 5
je 0x47c739
sub esp, 0xc
push ebx
call fcn.00476a20
mov dword [esp], esi
call fcn.00476a20
add esp, 0x10
or ecx, 0xffffffff
mov edx, ecx
jmp 0x47b663
fstp st(0)
mov ebx, edx
sar ebx, 0x1f
or ebx, 1
mov edx, ebx
jmp 0x47b663
cmp esi, 1
je 0x47c571
cmp esi, 2
je 0x47c57f
cmp esi, 3
jne case.0x47b638.0
mov dword [ebp + 8], 0
mov edx, dword [ebp - 0x48]
mov eax, ecx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0047b460
push 0x12a8
jmp 0x47b644
fld qword [edx + 8]
jmp 0x47b902
push eax
push eax
mov eax, dword [ebx + 8]
push eax
mov eax, dword [edx + 8]
push eax
call fcn.004623a0
add esp, 0x10
mov edx, 1
test eax, eax
jg 0x47b663
jne 0x47bc87
xor dl, dl
jmp 0x47b663
push edi
push edi
mov esi, dword [ebx + 8]
push esi
mov ebx, dword [ecx + 8]
push ebx
call fcn.004623a0
add esp, 0x10
mov edx, 1
test eax, eax
jg 0x47b663
cmp eax, 1
sbb edx, edx
xor edx, 0xffffffff
jmp 0x47b663
cmp ebx, 0x21
sete dl
cmp ebx, 0x22
sete al
or eax, edx
test al, 1
jne 0x47ba51
cmp ebx, 0x23
sete dl
cmp ebx, 0x24
sete al
or eax, edx
test al, 1
jne 0x47ba51
cmp ebx, 0x25
sete dl
cmp ebx, 0x26
sete al
or eax, edx
test al, 1
jne 0x47ba51
cmp ebx, 0x27
sete dl
cmp ebx, 0x28
sete al
or eax, edx
test al, 1
jne 0x47ba51
cmp ebx, 0x29
sete dl
cmp ebx, 0x2a
sete al
or eax, edx
test al, 1
jne 0x47ba51
jmp case.0x47b638.0
sub esp, 0x10
fst qword [esp]
fstp qword [ebp - 0x68]
call fcn.00437390
add esp, 0x10
or edx, 0xffffffff
test eax, eax
fld qword [ebp - 0x68]
jne 0x47c25e
fld qword [0x69a308]
fld qword [ebp - 0x58]
fcomp st(1)
fnstsw ax
test ah, 0x40
je 0x47c6b1
fxch st(1)
fcompp
fnstsw ax
test ah, 0x40
sete al
xor edx, edx
mov dl, al
jmp 0x47b663
lea eax, [ecx - 9]
cmp cl, 0x20
setne dl
cmp al, 1
seta al
and eax, 0xff
test edx, eax
je 0x47c1ce
cmp cl, 0xd
jne 0x47c217
cmp dword [ebp - 0x4c], 0
jmp 0x47c1e9
inc esi
mov bl, byte [esi]
cmp bl, 0x20
lea eax, [ebx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x47c1d4
cmp bl, 0xd
je 0x47c1d4
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
je 0x47c209
inc edi
mov cl, byte [edi]
jmp 0x47c1f0
cmp cl, 0xd
jne 0x47bc98
inc edi
mov cl, byte [edi]
jmp 0x47c1f0
xor edx, edx
xor eax, eax
mov dl, bl
mov al, cl
sub edx, eax
jmp 0x47b663
fstp st(0)
fstp st(0)
mov edx, ebx
jmp 0x47b663
mov edx, ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp + 8], 1
jmp 0x47bf07
test edx, edx
jle 0x47c701
fstp st(0)
mov esi, ecx
mov dword [ebp - 0x2c], 0xffffffff
neg esi
jmp 0x47bb6a
fstp st(0)
fstp st(0)
jmp 0x47b663
mov edx, ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp + 8], 1
jmp 0x47c07f
fstp st(0)
jmp 0x47bb66
mov ebx, dword [ebp - 0x2c]
cmp edi, dword [ebp - 0x30]
jg 0x47b889
mov ebx, 2
mov edx, ebx
jmp 0x47b663
push edi
push edi
push 0
push 0
call fcn.0047a7b0
add esp, 0x10
mov ebx, eax
call fcn.0047b130
mov dx, word [ebx + 0xc]
push esi
shr dx, 4
push esi
and edx, 0x1f
push 0x40e89c00
push 0
lea edi, [eax + edx]
mov eax, dword [ebp - 0x28]
call fcn.0047a7b0
add esp, 0x10
mov esi, eax
call fcn.0047b130
mov dx, word [esi + 0xc]
shr dx, 4
and edx, 0x1f
add eax, edx
cmp edi, eax
jl 0x47c029
jne 0x47c558
mov al, byte [ebx + 0xd]
shr al, 1
and eax, 0x1f
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [ebx + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [ebx + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
push edx
mov al, byte [esi + 0xd]
shr al, 1
and eax, 0x1f
fild dword [esp]
fadd qword [ebx + 0x10]
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [esi + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [esi + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
mov dword [esp], edx
fild dword [esp]
fadd qword [esi + 0x10]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fcompp
fnstsw ax
test ah, 5
jne 0x47c029
mov dword [ebp - 0x3c], 0
push ecx
push ecx
push 0xc0e89c00
push 0
mov eax, dword [ebp - 0x28]
call fcn.0047a7b0
add esp, 0x10
mov dword [ebp - 0x34], eax
call fcn.0047b130
mov ecx, dword [ebp - 0x34]
mov dx, word [ecx + 0xc]
shr dx, 4
and edx, 0x1f
add eax, edx
cmp edi, eax
jle 0x47c7f3
mov dword [ebp - 0x3c], 1
sub esp, 0xc
push ebx
call fcn.00476a20
mov dword [esp], esi
call fcn.00476a20
pop eax
mov eax, dword [ebp - 0x34]
push eax
call fcn.00476a20
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x47b7a7
mov edx, ecx
jmp 0x47b663
mov dword [ebp - 0x44], 0
mov eax, ecx
push ebx
push ebx
push 0
push 0
call fcn.0047a7b0
add esp, 0x10
mov esi, eax
call fcn.0047b130
mov dx, word [esi + 0xc]
shr dx, 4
and edx, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
push ecx
push ecx
push 0
push 0
mov eax, dword [ebp - 0x24]
call fcn.0047a7b0
add esp, 0x10
mov ebx, eax
call fcn.0047b130
mov dx, word [ebx + 0xc]
shr dx, 4
and edx, 0x1f
lea edi, [eax + edx]
cmp edi, dword [ebp - 0x38]
jl 0x47c51b
jg 0x47c72d
mov al, byte [ebx + 0xd]
shr al, 1
and eax, 0x1f
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [ebx + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [ebx + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
push edx
mov al, byte [esi + 0xd]
shr al, 1
and eax, 0x1f
fild dword [esp]
fadd qword [ebx + 0x10]
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [esi + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [esi + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
mov dword [esp], edx
fild dword [esp]
fadd qword [esi + 0x10]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
je 0x47c71c
fstp st(0)
mov dword [ebp - 0x44], 0xffffffff
sub esp, 0xc
push ebx
call fcn.00476a20
mov dword [esp], esi
call fcn.00476a20
mov ecx, dword [ebp - 0x44]
add esp, 0x10
mov edx, ecx
jmp 0x47b663
mov dword [ebp + 8], 0
mov edx, dword [ebp - 0x48]
mov eax, ecx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0047b250
sub esp, 0xc
push ebx
call fcn.00476a20
mov dword [esp], esi
call fcn.00476a20
add esp, 0x10
jmp 0x47b7a7
mov edx, ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp + 8], 1
jmp 0x47c54c
mov al, byte [ecx]
mov esi, ecx
mov edi, dword [ebp - 0x48]
test al, al
je 0x47c647
mov dl, byte [edi]
test dl, dl
je 0x47c79c
mov cl, dl
mov bl, al
jmp 0x47c5d0
lea eax, [ebx - 9]
cmp bl, 0x20
setne dl
cmp al, 1
seta al
and eax, 0xff
test edx, eax
je 0x47c5be
cmp bl, 0xd
jne 0x47c99e
inc esi
inc edi
mov bl, byte [esi]
test bl, bl
je 0x47c656
mov cl, byte [edi]
test cl, cl
je 0x47c649
lea eax, [ecx - 9]
cmp cl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x47c59e
cmp cl, 0xd
je 0x47c59e
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x47c981
cmp bl, 0xd
je 0x47c981
xor eax, eax
xor edx, edx
mov al, bl
mov dl, cl
sub eax, edx
cmp eax, 0
jl 0x47c03d
jle 0x47c5be
mov ecx, 1
mov edx, ecx
jmp 0x47b663
push eax
push eax
mov eax, dword [ebp - 0x48]
push eax
push ecx
call fcn.004623e0
add esp, 0x10
cmp eax, 1
sbb edx, edx
and edx, 2
jmp 0x47b663
mov bl, byte [ecx]
mov ecx, 1
test bl, bl
jne 0x47be62
or ecx, 0xffffffff
cmp byte [edi], 0
jne 0x47be62
xor ecx, ecx
jmp 0x47be62
test bl, bl
je 0x47bce8
lea eax, [ebx - 9]
cmp bl, 0x20
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
je 0x47c68a
inc esi
mov bl, byte [esi]
jmp 0x47c671
cmp bl, 0xd
je 0x47c685
mov edx, 1
test bl, bl
jne 0x47b663
jmp 0x47bce8
lea eax, [ebx + 2]
jmp 0x47bbb0
lea eax, [ebx + 6]
jmp 0x47bb92
fxch st(1)
or edx, 0xffffffff
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x40
jne 0x47c25e
fld qword [0x69a300]
fld qword [ebp - 0x58]
fcomp st(1)
fnstsw ax
test ah, 0x40
je 0x47c7a3
fxch st(1)
fcompp
fnstsw ax
test ah, 0x40
setne al
xor edx, edx
mov dl, al
dec edx
jmp 0x47b663
cmp bl, 0xd
je 0x47b6fb
mov bl, byte [ecx]
jmp 0x47b717
or ebx, 0xffffffff
fcomp qword [0x74c654]
fnstsw ax
test ah, 0x45
je 0x47c24c
mov edx, ebx
jmp 0x47b663
fcomp qword [0x74c654]
fnstsw ax
test ah, 0x45
jne 0x47c522
mov dword [ebp - 0x44], 1
jmp 0x47c522
mov dword [ebp - 0x40], 0
push eax
push eax
push 0x40e89c00
push 0
mov eax, dword [ebp - 0x24]
call fcn.0047a7b0
add esp, 0x10
mov edi, eax
call fcn.0047b130
mov dx, word [edi + 0xc]
shr dx, 4
and edx, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x38]
jle 0x47c8c0
mov dword [ebp - 0x40], 1
sub esp, 0xc
push ebx
call fcn.00476a20
mov dword [esp], esi
call fcn.00476a20
mov dword [esp], edi
call fcn.00476a20
add esp, 0x10
mov ecx, dword [ebp - 0x40]
jmp 0x47c3fb
mov bl, al
jmp 0x47c649
fxch st(1)
fcom st(1)
fnstsw ax
fstp st(1)
mov edx, 1
test ah, 0x40
jne 0x47c25e
fld qword [ebp - 0x58]
or edx, 0xffffffff
fcom st(1)
fnstsw ax
test ah, 1
jne 0x47c25c
fcom st(1)
fnstsw ax
mov edx, 1
test ah, 0x45
je 0x47c25c
fcompp
fnstsw ax
test ah, 0x40
sete al
xor edx, edx
mov dl, al
add edx, edx
jmp 0x47b663
jne 0x47c3da
mov al, byte [ebx + 0xd]
shr al, 1
and eax, 0x1f
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [ebx + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [ebx + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
push edx
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
fild dword [esp]
fadd qword [ebx + 0x10]
mov al, byte [edx + 0xd]
shr al, 1
and eax, 0x1f
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [ecx + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [edx + ecx*4]
mov edx, dword [ebp - 0x34]
mov ax, word [edx + 0x18]
shl eax, 3
sar ax, 4
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
mov dword [esp], edx
mov ecx, dword [ebp - 0x34]
fild dword [esp]
fadd qword [ecx + 0x10]
add esp, 4
fsubp st(1)
fcomp qword [0x74c654]
fnstsw ax
test ah, 0x45
setne al
and eax, 0xff
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
inc edx
mov dword [ebp - 0x3c], edx
jmp 0x47c3da
jne 0x47c778
mov al, byte [edi + 0xd]
shr al, 1
and eax, 0x1f
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [edi + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [edi + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
push edx
mov al, byte [esi + 0xd]
shr al, 1
and eax, 0x1f
fild dword [esp]
fadd qword [edi + 0x10]
lea edx, [eax*8]
sub edx, eax
shl edx, 5
add edx, eax
mov eax, dword [esi + 0xc]
shr eax, 0xe
shl edx, 4
and eax, 0x3f
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov ax, word [esi + 0x18]
shl eax, 3
sar ax, 4
lea ecx, [edx + ecx*4]
cwde
mov edx, eax
shl edx, 4
sub edx, eax
lea edx, [ecx + edx*4]
mov dword [esp], edx
fild dword [esp]
fadd qword [esi + 0x10]
add esp, 4
fsubp st(1)
fcomp qword [0x74c654]
fnstsw ax
test ah, 0x45
setne al
and eax, 0xff
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
jmp 0x47c778
xor edx, edx
mov eax, 0x20
mov dl, cl
mov ecx, 1
cmp eax, edx
js 0x47c03d
mov edx, ecx
jmp 0x47b663
xor eax, eax
mov ecx, 1
mov al, bl
sub eax, 0x20
jmp 0x47c991
fstp st(0)
fstp st(0)
mov edx, ecx
jmp 0x47b663