Function at 0x413260
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov ebx, dword [esp + 0xd0]
mov al, byte [ebx + 0x126]
mov esi, dword [ebx + 0x70]
and eax, 0xff
mov edi, eax
mov eax, esi
and eax, 0x1100
cmp eax, 0x1100
je 0x413537
mov eax, dword [ebx + 0x138]
cmp edi, 3
mov dword [ebx + 0x142], eax
mov eax, dword [ebx + 0x13c]
mov dword [ebx + 0x146], eax
mov eax, dword [ebx + 0x140]
mov word [ebx + 0x14a], ax
je 0x413558
test esi, 0x602000
je 0x4132de
fldz
fcom dword [ebx + 0x15c]
fnstsw ax
test ah, 0x40
je 0x4135d8
fstp st(0)
cmp edi, 3
sete al
test esi, 0x80
je 0x41347b
test al, al
je 0x41347b
mov cl, byte [ebx + 0x13a]
mov ax, word [ebx + 0x11a]
and eax, 0xffff
mov byte [esp + 0x60], cl
mov cl, byte [ebx + 0x13c]
mov dword [esp + 0x58], eax
mov byte [esp + 0x68], cl
mov cl, byte [ebx + 0x13e]
mov byte [esp + 0x90], cl
mov ecx, dword [esp + 0x58]
mov edx, dword [ebx + 0x114]
mov al, 1
test ecx, ecx
je 0x41347b
mov al, byte [esp + 0x60]
xor ecx, ecx
and eax, 0xff
mov edi, 0xff
mov ebp, eax
mov al, byte [esp + 0x68]
and eax, 0xff
mov esi, ebx
mov word [esp + 0x70], ax
mov al, byte [esp + 0x90]
and eax, 0xff
mov word [esp + 0x9c], bp
mov word [esp + 0x98], ax
jmp 0x4133a5
mov al, byte [esp + 0x60]
mov byte [edx], al
mov al, byte [esp + 0x68]
mov byte [edx + 1], al
mov al, byte [esp + 0x90]
mov byte [edx + 2], al
inc ecx
add edx, 3
cmp dword [esp + 0x58], ecx
jle 0x413474
mov eax, dword [esi + 0x188]
mov bl, byte [eax + ecx]
test bl, bl
je 0x413380
cmp bl, 0xff
je 0x413397
mov al, bl
mov ebp, edi
and ebx, 0xff
sub bp, bx
mov ebx, ebp
mov ebp, dword [esp + 0x9c]
mul byte [edx]
imul ebx, ebp
mov ebp, edi
lea eax, [eax + ebx + 0x80]
mov ebx, eax
and ebx, 0xffff
movzx eax, ah
add eax, ebx
sar eax, 8
mov byte [edx], al
mov eax, dword [esi + 0x188]
mov bl, byte [eax + ecx]
mov al, bl
and ebx, 0xff
sub bp, bx
mov ebx, ebp
mov ebp, dword [esp + 0x70]
mul byte [edx + 1]
imul ebx, ebp
mov ebp, edi
lea eax, [eax + ebx + 0x80]
mov ebx, eax
and ebx, 0xffff
movzx eax, ah
add eax, ebx
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [esi + 0x188]
mov bl, byte [eax + ecx]
inc ecx
mov al, bl
and ebx, 0xff
sub bp, bx
mov ebx, ebp
mov ebp, dword [esp + 0x98]
mul byte [edx + 2]
imul ebx, ebp
lea eax, [eax + ebx + 0x80]
mov ebx, eax
and ebx, 0xffff
movzx eax, ah
add eax, ebx
sar eax, 8
mov byte [edx + 2], al
add edx, 3
cmp dword [esp + 0x58], ecx
jg 0x4133a5
mov ebx, esi
mov esi, dword [ebx + 0x70]
mov al, 1
and esi, 8
je 0x41352c
test al, al
je 0x41352c
mov esi, 8
xor edx, edx
mov dl, byte [ebx + 0x17c]
mov ecx, esi
sub ecx, edx
xor edx, edx
mov dl, byte [ebx + 0x17d]
mov ebp, esi
sub ebp, edx
xor edx, edx
mov dl, byte [ebx + 0x17e]
mov eax, dword [ebx + 0x118]
sub esi, edx
cmp ecx, 9
sbb edx, edx
and ecx, edx
cmp ebp, 9
sbb edx, edx
mov dword [esp + 0x58], ecx
and ebp, edx
cmp esi, 9
sbb edx, edx
and esi, edx
test ax, ax
je 0x41352c
dec eax
and eax, 0xffff
lea eax, [eax + eax*2 + 3]
mov dword [esp + 0x60], eax
xor eax, eax
mov edi, dword [ebx + 0x114]
xor edx, edx
add edi, eax
mov cl, byte [esp + 0x58]
mov dl, byte [edi]
sar edx, cl
mov byte [edi], dl
xor edx, edx
mov edi, dword [ebx + 0x114]
mov ecx, ebp
add edi, eax
mov dl, byte [edi + 1]
sar edx, cl
mov byte [edi + 1], dl
xor edx, edx
mov edi, dword [ebx + 0x114]
mov ecx, esi
add edi, eax
add eax, 3
mov dl, byte [edi + 2]
sar edx, cl
mov byte [edi + 2], dl
cmp eax, dword [esp + 0x60]
jne 0x4134e7
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, 2
jne 0x4139d0
cmp byte [ebx + 0x127], 0x10
jbe 0x413a72
mov esi, dword [ebx + 0x70]
jmp 0x413293
mov cx, word [ebx + 0x11a]
test cx, cx
je 0x4132c1
fld dword [ebx + 0x15c]
fmul dword [ebx + 0x160]
fsub dword [0x58e4c4]
fabs
fcomp qword [0x58e4c8]
fnstsw ax
test ah, 1
je 0x4132c1
and ecx, 0xffff
test ecx, ecx
jle 0x4135ca
mov ebp, dword [ebx + 0x188]
mov dword [esp + 0x58], 0
xor eax, eax
mov dl, byte [ebp + eax]
dec edx
cmp dl, 0xfd
ja 0x4135b9
mov dword [esp + 0x58], 1
inc eax
cmp eax, ecx
jl 0x4135a7
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x4132c1
and esi, 0xffffdfff
mov dword [ebx + 0x70], esi
jmp 0x4132c1
fstp dword [esp + 0x40]
mov dword [esp], ebx
call fcn.00412900
mov esi, dword [ebx + 0x70]
test esi, 0x80
fld dword [esp + 0x40]
je 0x413a03
cmp edi, 3
je 0x413c7a
fstp st(0)
xor ecx, ecx
mov eax, 1
mov cl, byte [ebx + 0x127]
xor edx, edx
shl eax, cl
dec eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], eax
fild qword [esp + 0xa0]
mov al, byte [ebx + 0x130]
fstp qword [esp + 0x58]
cmp al, 2
je 0x413a81
cmp al, 3
je 0x41416f
dec al
je 0x41415a
fld1
fst qword [esp + 0x68]
fstp qword [esp + 0x60]
mov eax, dword [ebx + 0x140]
and eax, 0xffff
mov dword [esp + 0xac], eax
fild dword [esp + 0xac]
fdiv qword [esp + 0x58]
fld qword [esp + 0x60]
fstp qword [esp + 8]
fst qword [esp]
fstp qword [esp + 0x40]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fld dword [0x58e4d4]
fadd st(1), st(0)
fxch st(1)
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
fld qword [esp + 0x68]
mov edi, dword [esp + 0xac]
mov word [ebx + 0x14a], di
fstp qword [esp + 8]
fld qword [esp + 0x40]
fstp qword [esp]
fstp qword [esp + 0x20]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fld qword [esp + 0x20]
faddp st(1)
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
mov eax, dword [esp + 0xac]
mov esi, dword [ebx + 0x13c]
mov edx, eax
mov word [ebx + 0x140], ax
mov ax, word [ebx + 0x13a]
cmp ax, si
je 0x414115
fld qword [esp + 0x58]
fdivr dword [0x58e4c4]
and eax, 0xffff
and esi, 0xffff
mov dword [esp + 0xac], eax
fst qword [esp + 0x90]
fild dword [esp + 0xac]
fmulp st(1)
fld qword [esp + 0x60]
fstp qword [esp + 8]
fst qword [esp]
fstp qword [esp + 0x30]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
mov eax, dword [esp + 0xac]
mov word [ebx + 0x144], ax
mov dword [esp + 0xac], esi
fild dword [esp + 0xac]
fmul qword [esp + 0x90]
fld qword [esp + 0x60]
fstp qword [esp + 8]
fst qword [esp]
fstp qword [esp + 0x20]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
mov eax, dword [esp + 0xac]
mov word [ebx + 0x146], ax
mov ax, word [ebx + 0x13e]
and eax, 0xffff
mov dword [esp + 0xac], eax
fild dword [esp + 0xac]
fmul qword [esp + 0x90]
fld qword [esp + 0x60]
fstp qword [esp + 8]
fst qword [esp]
fstp qword [esp + 0x40]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
fld qword [esp + 0x68]
mov eax, dword [esp + 0xac]
mov word [ebx + 0x148], ax
fstp qword [esp + 8]
fld qword [esp + 0x30]
fstp qword [esp]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
fld qword [esp + 0x68]
mov eax, dword [esp + 0xac]
mov word [ebx + 0x13a], ax
fstp qword [esp + 8]
fld qword [esp + 0x20]
fstp qword [esp]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
mov eax, dword [esp + 0xac]
mov word [ebx + 0x13c], ax
fld qword [esp + 0x68]
fstp qword [esp + 8]
fld qword [esp + 0x40]
fstp qword [esp]
call sub.msvcrt.dll_pow
fmul qword [esp + 0x58]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp dword [esp + 0xac]
fldcw word [esp + 0xaa]
mov eax, dword [esp + 0xac]
mov word [ebx + 0x13e], ax
jmp 0x41352c
cmp edi, 3
je 0x413bd8
mov eax, dword [ebx + 0x138]
mov dword [ebx + 0x142], eax
mov eax, dword [ebx + 0x13c]
mov dword [ebx + 0x146], eax
mov eax, dword [ebx + 0x140]
mov word [ebx + 0x14a], ax
jmp 0x4132c1
fstp st(0)
cmp edi, 3
jne 0x41352c
mov edx, dword [ebx + 0x118]
mov ecx, dword [ebx + 0x114]
test dx, dx
mov al, 1
je 0x41347b
and edx, 0xffff
mov eax, ecx
lea edi, [edx + edx*2]
xor edx, edx
xor ecx, ecx
mov esi, dword [ebx + 0x164]
mov cl, byte [eax]
add edx, 3
mov cl, byte [esi + ecx]
mov byte [eax], cl
xor ecx, ecx
mov esi, dword [ebx + 0x164]
mov cl, byte [eax + 1]
mov cl, byte [esi + ecx]
mov byte [eax + 1], cl
xor ecx, ecx
mov cl, byte [eax + 2]
mov esi, dword [ebx + 0x164]
mov cl, byte [esi + ecx]
mov byte [eax + 2], cl
add eax, 3
cmp edx, edi
jne 0x413a32
jmp 0x413476
xor eax, eax
mov al, byte [ebx + 0x127]
jmp dword [eax*4 + 0x58e408]
fld dword [ebx + 0x15c]
fld1
fld st(0)
fdiv st(2)
fstp qword [esp + 0x60]
fxch st(1)
fmul dword [ebx + 0x160]
fdivp st(1)
fstp qword [esp + 0x68]
jmp 0x413655
mov edx, dword [ebx + 0x140]
mov esi, dword [ebx + 0x70]
mov eax, edx
shl eax, 8
sub ax, dx
mov word [ebx + 0x140], ax
mov word [ebx + 0x13e], ax
mov word [ebx + 0x13c], ax
mov word [ebx + 0x13a], ax
test esi, 0x2000000
jne 0x413293
mov edx, dword [ebx + 0x194]
mov eax, edx
shl eax, 8
sub ax, dx
mov word [ebx + 0x194], ax
mov word [ebx + 0x192], ax
mov word [ebx + 0x190], ax
mov word [ebx + 0x18e], ax
jmp 0x413293
mov eax, dword [ebx + 0x140]
mov word [ebx + 0x13e], ax
mov word [ebx + 0x13c], ax
mov word [ebx + 0x13a], ax
jmp case.0x413a7a.0
mov eax, dword [ebx + 0x140]
mov esi, dword [ebx + 0x70]
mov edx, eax
shl edx, 4
add eax, edx
mov word [ebx + 0x140], ax
mov word [ebx + 0x13e], ax
mov word [ebx + 0x13c], ax
mov word [ebx + 0x13a], ax
test esi, 0x2000000
jne 0x413293
mov eax, dword [ebx + 0x194]
mov edx, eax
shl edx, 4
add eax, edx
mov word [ebx + 0x194], ax
mov word [ebx + 0x192], ax
mov word [ebx + 0x190], ax
mov word [ebx + 0x18e], ax
jmp 0x413293
mov eax, dword [ebx + 0x140]
mov esi, dword [ebx + 0x70]
lea eax, [eax + eax*4]
mov edx, eax
shl edx, 4
add eax, edx
mov word [ebx + 0x140], ax
mov word [ebx + 0x13e], ax
mov word [ebx + 0x13c], ax
mov word [ebx + 0x13a], ax
test esi, 0x2000000
jne 0x413293
mov eax, dword [ebx + 0x194]
lea eax, [eax + eax*4]
jmp 0x413b6a
xor eax, eax
mov ebp, dword [ebx + 0x114]
mov al, byte [ebx + 0x138]
xor edx, edx
mov cx, word [ebx + 0x11a]
lea eax, [eax + eax*2]
add eax, ebp
mov dl, byte [eax]
mov word [ebx + 0x13a], dx
xor edx, edx
mov dl, byte [eax + 1]
mov word [ebx + 0x13c], dx
mov al, byte [eax + 2]
and eax, 0xff
mov word [ebx + 0x13e], ax
test esi, 0x80000
je 0x413c50
test esi, 0x2000000
jne 0x413c50
mov ebp, ecx
and ebp, 0xffff
test ebp, ebp
je 0x413c50
xor eax, eax
mov edx, dword [ebx + 0x188]
add edx, eax
inc eax
xor byte [edx], 0xff
cmp ebp, eax
jg 0x413c36
mov cx, word [ebx + 0x11a]
mov esi, dword [ebx + 0x70]
mov eax, dword [ebx + 0x138]
mov dword [ebx + 0x142], eax
mov eax, dword [ebx + 0x13c]
mov dword [ebx + 0x146], eax
mov eax, dword [ebx + 0x140]
mov word [ebx + 0x14a], ax
jmp 0x41355f
mov eax, dword [ebx + 0x118]
mov ebp, dword [ebx + 0x114]
and eax, 0xffff
mov dword [esp + 0x60], eax
mov al, byte [ebx + 0x130]
cmp al, 2
je 0x4141fd
cmp al, 3
je 0x414277
dec al
je 0x41417a
fld1
fld st(0)
fstp qword [esp + 0x58]
fxch st(1)
fcomp qword [0x58e4c8]
fnstsw ax
test ah, 1
jne 0x414188
mov ax, word [ebx + 0x13a]
and eax, 0xffff
mov dword [esp + 0xac], eax
fild dword [esp + 0xac]
fmul qword [0x58e4e0]
fxch st(1)
fst qword [esp + 8]
fxch st(1)
fst qword [esp]
fstp qword [esp + 0x30]
fstp qword [esp + 0x40]
call sub.msvcrt.dll_pow
fmul qword [0x58e4f8]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp word [esp + 0x9e]
fldcw word [esp + 0xaa]
mov eax, dword [ebx + 0x13c]
mov dx, word [esp + 0x9e]
and eax, 0xffff
mov byte [esp + 0x70], dl
mov dword [esp + 0xac], eax
fild dword [esp + 0xac]
fmul qword [0x58e4e0]
fld qword [esp + 0x40]
fstp qword [esp + 8]
fst qword [esp]
fstp qword [esp + 0x20]
call sub.msvcrt.dll_pow
fmul qword [0x58e4f8]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp word [esp + 0x9e]
fldcw word [esp + 0xaa]
mov ax, word [ebx + 0x13e]
mov cx, word [esp + 0x9e]
and eax, 0xffff
mov byte [esp + 0x90], cl
mov dword [esp + 0xac], eax
fild dword [esp + 0xac]
fmul qword [0x58e4e0]
fld qword [esp + 0x40]
fstp qword [esp + 8]
fst qword [esp]
fstp qword [esp + 0x40]
call sub.msvcrt.dll_pow
fmul qword [0x58e4f8]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp word [esp + 0x9e]
fldcw word [esp + 0xaa]
fld qword [esp + 0x30]
mov dx, word [esp + 0x9e]
fld qword [esp + 0x20]
mov byte [esp + 0x68], dl
fld qword [esp + 0x40]
fld qword [esp + 0x58]
fstp qword [esp + 8]
fxch st(2)
fstp qword [esp]
fxch st(1)
fstp qword [esp + 0x40]
fstp qword [esp + 0x20]
call sub.msvcrt.dll_pow
fmul qword [0x58e4f8]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp word [esp + 0x9e]
fldcw word [esp + 0xaa]
fld qword [esp + 0x58]
mov di, word [esp + 0x9e]
fstp qword [esp + 8]
fld qword [esp + 0x20]
fstp qword [esp]
call sub.msvcrt.dll_pow
fmul qword [0x58e4f8]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp word [esp + 0x9e]
fldcw word [esp + 0xaa]
fld qword [esp + 0x58]
mov ax, word [esp + 0x9e]
fstp qword [esp + 8]
fld qword [esp + 0x40]
mov byte [esp + 0x80], al
fstp qword [esp]
call sub.msvcrt.dll_pow
fmul qword [0x58e4f8]
fnstcw word [esp + 0xaa]
mov ax, word [esp + 0xaa]
mov ah, 0xc
fadd qword [0x58e500]
mov word [esp + 0xa8], ax
fldcw word [esp + 0xa8]
fistp word [esp + 0x9e]
fldcw word [esp + 0xaa]
mov ax, word [esp + 0x9e]
mov byte [esp + 0x58], al
mov edx, dword [esp + 0x60]
mov al, 1
test edx, edx
je 0x41347b
mov eax, edi
xor ecx, ecx
and eax, 0xff
mov edx, ebp
mov word [esp + 0x98], ax
mov al, byte [esp + 0x80]
and eax, 0xff
mov ebp, 0xff
mov word [esp + 0x80], ax
mov al, byte [esp + 0x58]
and eax, 0xff
mov edi, ecx
mov word [esp + 0x9c], ax
jmp 0x413fee
mov eax, dword [ebx + 0x188]
mov al, byte [eax + edi]
mov byte [esp + 0x58], al
cmp al, 0xff
je 0x413ffe
test al, al
jne 0x414031
mov cl, byte [esp + 0x70]
mov byte [edx], cl
mov cl, byte [esp + 0x90]
mov byte [edx + 1], cl
mov cl, byte [esp + 0x68]
mov byte [edx + 2], cl
lea esi, [esi]
inc edi
add edx, 3
cmp dword [esp + 0x60], edi
jle 0x413476
mov ax, word [ebx + 0x11a]
and eax, 0xffff
cmp eax, edi
jg 0x413fb0
xor eax, eax
mov ecx, dword [ebx + 0x164]
mov al, byte [edx]
mov al, byte [ecx + eax]
mov byte [edx], al
xor eax, eax
mov ecx, dword [ebx + 0x164]
mov al, byte [edx + 1]
mov al, byte [ecx + eax]
mov byte [edx + 1], al
xor eax, eax
mov al, byte [edx + 2]
mov ecx, dword [ebx + 0x164]
mov al, byte [ecx + eax]
mov byte [edx + 2], al
jmp 0x413fe0
xor ecx, ecx
mov esi, dword [ebx + 0x16c]
mov cl, byte [edx]
mov al, byte [esp + 0x58]
mul byte [esi + ecx]
xor ecx, ecx
mov esi, ebp
mov cl, byte [esp + 0x58]
sub si, cx
mov ecx, esi
mov esi, dword [esp + 0x98]
imul ecx, esi
lea eax, [eax + ecx + 0x80]
movzx ecx, ah
lea eax, [ecx + eax]
mov ecx, dword [ebx + 0x168]
movzx eax, ah
mov al, byte [ecx + eax]
xor ecx, ecx
mov byte [edx], al
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0x188]
mov esi, dword [ebx + 0x16c]
mov al, byte [eax + edi]
mov byte [esp + 0x1f], al
mul byte [esi + ecx]
xor ecx, ecx
mov esi, ebp
mov cl, byte [esp + 0x1f]
sub si, cx
mov ecx, esi
mov esi, dword [esp + 0x80]
imul ecx, esi
lea eax, [eax + ecx + 0x80]
movzx ecx, ah
lea eax, [ecx + eax]
mov ecx, dword [ebx + 0x168]
movzx eax, ah
mov al, byte [ecx + eax]
xor ecx, ecx
mov byte [edx + 1], al
mov cl, byte [edx + 2]
mov eax, dword [ebx + 0x188]
mov esi, dword [ebx + 0x16c]
mov al, byte [eax + edi]
mov byte [esp + 0x1f], al
mul byte [esi + ecx]
xor ecx, ecx
mov esi, ebp
mov cl, byte [esp + 0x1f]
sub si, cx
mov ecx, esi
mov esi, dword [esp + 0x9c]
imul ecx, esi
lea eax, [eax + ecx + 0x80]
movzx ecx, ah
lea eax, [ecx + eax]
mov ecx, dword [ebx + 0x168]
movzx eax, ah
mov al, byte [ecx + eax]
mov byte [edx + 2], al
jmp 0x413fe0
cmp ax, word [ebx + 0x13e]
jne 0x413746
cmp dx, ax
jne 0x413746
mov word [ebx + 0x148], di
mov word [ebx + 0x146], di
mov word [ebx + 0x144], di
mov word [ebx + 0x13e], dx
mov word [ebx + 0x13c], dx
mov word [ebx + 0x13a], dx
jmp 0x41352c
fld dword [ebx + 0x160]
fstp qword [esp + 0x60]
fld1
fstp qword [esp + 0x68]
jmp 0x413655
fld dword [ebx + 0x134]
jmp 0x413a87
fstp st(0)
fld dword [ebx + 0x160]
fstp qword [esp + 0x58]
jmp 0x41418a
fstp st(0)
mov ax, word [ebx + 0x13a]
mov edx, dword [ebx + 0x13c]
mov byte [esp + 0x70], al
and eax, 0xffff
mov cx, word [ebx + 0x13e]
mov dword [esp + 0xac], eax
fild dword [esp + 0xac]
fld qword [0x58e4e0]
fmul st(1), st(0)
mov eax, edx
and eax, 0xffff
mov byte [esp + 0x90], dl
mov dword [esp + 0xac], eax
mov eax, ecx
fild dword [esp + 0xac]
fmul st(1)
and eax, 0xffff
mov dword [esp + 0xac], eax
mov byte [esp + 0x68], cl
fild dword [esp + 0xac]
fmulp st(2)
fxch st(1)
jmp 0x413e48
fstp st(0)
mov cx, word [ebx + 0x13a]
mov edx, dword [ebx + 0x164]
and ecx, 0xffff
mov al, byte [edx + ecx]
mov byte [esp + 0x70], al
mov eax, dword [ebx + 0x13c]
and eax, 0xffff
mov dword [esp + 0x58], eax
mov al, byte [edx + eax]
mov byte [esp + 0x90], al
mov ax, word [ebx + 0x13e]
and eax, 0xffff
mov dword [esp + 0x98], eax
mov dl, byte [edx + eax]
mov eax, dword [ebx + 0x16c]
mov byte [esp + 0x68], dl
mov edx, dword [esp + 0x58]
movzx edi, byte [eax + ecx]
mov ecx, dword [esp + 0x98]
mov dl, byte [eax + edx]
mov byte [esp + 0x80], dl
mov al, byte [eax + ecx]
mov byte [esp + 0x58], al
jmp 0x413f5d
fstp st(0)
fld dword [ebx + 0x134]
fld1
fld st(0)
fdiv st(2)
fstp qword [esp + 0x58]
fxch st(1)
fmul dword [ebx + 0x160]
fld st(1)
fdivrp st(1)
fsubr st(1), st(0)
fxch st(1)
fabs
jmp 0x413cb7