Function at 0x466f00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x12c
mov eax, dword [ebp + 8]
movzx esi, byte [eax + 0x12a]
mov edx, esi
and edx, 0xff
mov dword [ebp - 0xb0], edx
test byte [eax + 0x75], 1
je 0x466f33
and edx, 2
je 0x467274
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x74]
and eax, 0x4180
cmp eax, 0x4080
je 0x46734d
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x74]
and eax, 0x1100
cmp eax, 0x1100
je 0x4672a7
mov edx, dword [ebp + 8]
mov ecx, esi
cmp cl, 3
mov eax, dword [edx + 0x13c]
mov dword [edx + 0x146], eax
mov eax, dword [edx + 0x140]
mov dword [edx + 0x14a], eax
mov eax, dword [edx + 0x144]
mov word [edx + 0x14e], ax
je 0x4672d0
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x74]
mov ecx, ebx
test ebx, 0x602000
je 0x466fbc
fld dword [edi + 0x160]
fldz
fxch st(1)
fucompp
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x467383
cmp dword [ebp - 0xb0], 3
sete byte [ebp - 0x23]
test bl, bl
jns 0x46716a
cmp byte [ebp - 0x23], 0
je 0x46726c
mov edx, dword [ebp + 8]
mov ebx, edx
mov ax, word [edx + 0x11e]
mov edx, dword [edx + 0x118]
mov bl, byte [ebx + 0x13e]
mov edi, eax
mov byte [ebp - 0x24], bl
mov ebx, dword [ebp + 8]
and edi, 0xffff
test ax, ax
mov bl, byte [ebx + 0x140]
mov byte [ebp - 0x25], bl
mov ebx, dword [ebp + 8]
mov bl, byte [ebx + 0x142]
mov byte [ebp - 0x26], bl
je 0x467159
lea ebx, [edx + 2]
mov al, byte [ebp - 0x24]
mov dl, byte [ebp - 0x25]
and eax, 0xff
and edx, 0xff
xor esi, esi
mov word [ebp - 0xda], ax
mov word [ebp - 0xdc], dx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x18c]
mov dl, byte [esi + eax]
test dl, dl
je 0x467285
cmp dl, 0xff
je 0x467296
xor eax, eax
mov ecx, 0xff
mov al, dl
mov word [ebp - 0xfe], ax
mov al, byte [ebx - 2]
mul dl
mov word [ebp - 0x104], ax
mov eax, ecx
sub ax, word [ebp - 0xfe]
mov edx, dword [ebp - 0x104]
imul ax, word [ebp - 0xda]
lea eax, [edx + eax + 0x80]
mov word [ebp - 0x138], ax
mov edx, dword [ebp - 0x138]
and edx, 0xffff
movzx eax, ah
add eax, edx
sar eax, 8
mov byte [ebx - 2], al
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18c]
xor edx, edx
mov dl, byte [ebx - 1]
mov al, byte [esi + eax]
and eax, 0xff
imul edx, eax
mov word [ebp - 0x104], dx
mov edx, ecx
sub dx, ax
mov eax, edx
mov edx, dword [ebp - 0xdc]
imul eax, edx
mov edx, dword [ebp - 0x104]
lea eax, [edx + eax + 0x80]
mov word [ebp - 0x128], ax
mov edx, dword [ebp - 0x128]
and edx, 0xffff
movzx eax, ah
add eax, edx
sar eax, 8
mov byte [ebx - 1], al
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18c]
xor edx, edx
mov dl, byte [esi + eax]
xor eax, eax
mov al, byte [ebx]
inc esi
imul eax, edx
sub cx, dx
xor edx, edx
mov dl, byte [ebp - 0x26]
imul ecx, edx
lea eax, [eax + ecx + 0x80]
movzx edx, ah
and eax, 0xffff
add edx, eax
sar edx, 8
mov byte [ebx], dl
add ebx, 3
cmp edi, esi
jne 0x467041
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x74]
mov ebx, ecx
mov edi, dword [ebp + 8]
and bl, 0x7f
or ebx, 0x40000
mov dword [edi + 0x74], ebx
cmp byte [ebp - 0x23], 0
je 0x46726c
and ebx, 8
je 0x46726c
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 0x11c]
mov word [ebp - 0x7e], ax
xor eax, eax
mov al, byte [edx + 0x180]
mov edx, 8
mov ecx, edx
mov edi, edx
sub ecx, eax
xor eax, eax
mov dword [ebp - 0x7c], ecx
mov esi, edx
mov al, byte [ebx + 0x181]
sub edi, eax
xor eax, eax
mov al, byte [ebx + 0x182]
sub esi, eax
cmp ecx, 9
setb al
and eax, 0xff
neg eax
and ecx, eax
cmp edi, 9
setb al
and eax, 0xff
mov dword [ebp - 0x7c], ecx
neg eax
and edi, eax
cmp esi, 9
setb al
and eax, 0xff
neg eax
and esi, eax
cmp word [ebp - 0x7e], 0
je 0x46726c
xor ebx, ebx
mov dword [ebp - 0xfc], 0
nop
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xfc]
inc ebx
mov ecx, dword [eax + 0x118]
xor eax, eax
add edx, ecx
mov cl, byte [ebp - 0x7c]
mov al, byte [edx]
sar eax, cl
mov byte [edx], al
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x118]
xor eax, eax
add edx, ecx
mov ecx, edi
mov al, byte [edx + 1]
sar eax, cl
mov byte [edx + 1], al
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x118]
xor eax, eax
add edx, ecx
mov ecx, esi
mov al, byte [edx + 2]
sar eax, cl
mov byte [edx + 2], al
mov eax, dword [ebp - 0xfc]
add eax, 3
cmp bx, word [ebp - 0x7e]
mov dword [ebp - 0xfc], eax
jne 0x467200
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [eax + 0x6c]
or edi, 0x800
mov dword [eax + 0x6c], edi
jmp 0x466f49
mov al, byte [ebp - 0x26]
mov byte [ebx], al
mov dl, byte [ebp - 0x25]
mov byte [ebx - 1], dl
mov cl, byte [ebp - 0x24]
mov byte [ebx - 2], cl
inc esi
add ebx, 3
cmp edi, esi
jne 0x467041
jmp 0x467153
test byte [ebp - 0xb0], 2
jne 0x46772f
cmp byte [ebx + 0x12b], 0x10
ja case.0x4672c9.0
xor eax, eax
mov al, byte [ebx + 0x12b]
jmp dword [eax*4 + 0x4bd0e0]
mov cx, word [edx + 0x11e]
test cx, cx
je 0x466f92
mov ebx, dword [ebp + 8]
fld dword [ebx + 0x164]
fmul dword [ebx + 0x160]
fsub dword [0x4bd2a4]
fabs
fld qword [0x4bd2a8]
fucompp
fnstsw ax
test ah, 0x45
jne 0x466f92
mov eax, ecx
mov ebx, dword [ebx + 0x18c]
and eax, 0xffff
xor edi, edi
mov edx, 1
lea ecx, [eax + 1]
mov al, byte [edx + ebx - 1]
dec eax
cmp al, 0xfd
ja 0x46732f
mov edi, 1
inc edx
cmp edx, ecx
jne 0x467321
test edi, edi
jne 0x466f92
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x74]
and ah, 0xdf
mov dword [ecx + 0x74], eax
jmp 0x466f92
mov ax, word [ecx + 0x13e]
cmp ax, word [ecx + 0x140]
jne 0x466f49
cmp ax, word [ecx + 0x142]
jne 0x466f49
mov ebx, dword [ecx + 0x6c]
mov word [ecx + 0x144], ax
or bh, 8
mov dword [ecx + 0x6c], ebx
jmp 0x466f49
sub esp, 0xc
push edi
call fcn.00466550
mov ebx, dword [edi + 0x74]
add esp, 0x10
test bl, bl
jns 0x467766
mov edx, esi
cmp dl, 3
je 0x467a54
mov eax, dword [ebp + 8]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 0x12b]
mov eax, 1
shl eax, cl
dec eax
push edx
push eax
mov edx, dword [ebp + 8]
fild qword [esp]
add esp, 8
fstp qword [ebp - 0x98]
mov al, byte [edx + 0x134]
cmp al, 2
je 0x467780
cmp al, 3
je 0x467dc9
dec al
je 0x467da9
fld1
fst qword [ebp - 0x90]
fstp qword [ebp - 0x88]
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [edx + 0x144]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
mov ecx, dword [ebp + 8]
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
fld dword [0x4bd2bc]
fadd st(1), st(0)
fxch st(1)
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov eax, dword [ebp - 0x20]
mov word [ecx + 0x14e], ax
mov eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0x88]
push eax
push edi
mov eax, dword [ecx + 0x144]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
fstp qword [ebp - 0xf8]
call sub.msvcrt.dll_pow
mov ebx, dword [ebp + 8]
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
add esp, 0x20
mov ah, 0xc
fld qword [ebp - 0xf8]
faddp st(1)
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov edx, dword [ebp - 0x20]
mov ax, word [ebx + 0x13e]
cmp ax, word [ebx + 0x140]
mov word [ebx + 0x144], dx
jne 0x4674e0
cmp ax, word [ebx + 0x142]
je 0x467ddf
and eax, 0xffff
mov esi, dword [ebp - 0x8c]
mov ebx, dword [ebp - 0x90]
push esi
push ebx
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
mov edx, dword [ebp + 8]
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
fld dword [0x4bd2bc]
mov word [ebp - 0x1c], ax
fst qword [ebp - 0xd8]
faddp st(1)
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov eax, dword [ebp - 0x20]
mov word [edx + 0x148], ax
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x90]
push ecx
push eax
mov eax, dword [edx + 0x140]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
mov ecx, dword [ebp + 8]
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
add esp, 0x20
mov ah, 0xc
fadd qword [ebp - 0xd8]
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov eax, dword [ebp - 0x20]
mov word [ecx + 0x14a], ax
mov eax, dword [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x90]
push eax
mov ax, word [ecx + 0x142]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
mov ebx, dword [ebp + 8]
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
fadd qword [ebp - 0xd8]
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov eax, dword [ebp - 0x20]
mov word [ebx + 0x14c], ax
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x88]
push eax
mov ax, word [ebx + 0x13e]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x20
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
fadd qword [ebp - 0xd8]
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov eax, dword [ebp - 0x20]
mov word [ebx + 0x13e], ax
mov eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0x88]
push eax
push edi
mov eax, dword [ebx + 0x140]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
fadd qword [ebp - 0xd8]
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov eax, dword [ebp - 0x20]
mov word [ebx + 0x140], ax
mov esi, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x88]
push esi
push ecx
mov ax, word [ebx + 0x142]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0x98]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x20
fmul qword [ebp - 0x98]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
mov word [ebp - 0x1c], ax
fst qword [ebp - 0x98]
fadd qword [ebp - 0xd8]
fldcw word [ebp - 0x1c]
fistp dword [ebp - 0x20]
fldcw word [ebp - 0x1a]
mov eax, dword [ebp - 0x20]
mov word [ebx + 0x142], ax
mov edi, dword [ebp + 8]
cmp dword [ebp - 0xb0], 3
mov ebx, dword [edi + 0x74]
sete byte [ebp - 0x23]
jmp 0x46716a
mov eax, esi
cmp al, 3
je 0x467924
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x13c]
mov dword [ecx + 0x146], eax
mov eax, dword [ecx + 0x140]
mov dword [ecx + 0x14a], eax
mov eax, dword [ecx + 0x144]
mov word [ecx + 0x14e], ax
jmp 0x466f92
mov eax, esi
cmp al, 3
je 0x4679e4
cmp dword [ebp - 0xb0], 3
sete byte [ebp - 0x23]
jmp 0x46716a
mov eax, dword [ebp + 8]
fld dword [eax + 0x160]
fld dword [0x4bd2a4]
fld st(0)
fdiv st(2)
fstp qword [ebp - 0x90]
fxch st(1)
fmul dword [eax + 0x164]
fdivp st(1)
fstp qword [ebp - 0x88]
jmp 0x4673f7
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x144]
mov word [edi + 0x142], ax
mov word [edi + 0x140], ax
mov word [edi + 0x13e], ax
jmp case.0x4672c9.0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x144]
and eax, 0xffff
mov edx, eax
shl edx, 4
add edx, eax
test byte [ebx + 0x77], 2
mov word [ebx + 0x144], dx
mov word [ebx + 0x142], dx
mov word [ebx + 0x140], dx
mov word [ebx + 0x13e], dx
jne case.0x4672c9.0
mov eax, dword [ebx + 0x198]
and eax, 0xffff
mov edx, eax
shl edx, 4
add edx, eax
mov word [ebx + 0x198], dx
mov word [ebx + 0x196], dx
mov word [ebx + 0x194], dx
mov word [ebx + 0x192], dx
jmp case.0x4672c9.0
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x144]
and eax, 0xffff
lea eax, [eax + eax*4]
mov edx, eax
shl edx, 4
add eax, edx
test byte [ecx + 0x77], 2
mov word [ecx + 0x144], ax
mov word [ecx + 0x142], ax
mov word [ecx + 0x140], ax
mov word [ecx + 0x13e], ax
jne case.0x4672c9.0
mov eax, dword [ecx + 0x198]
and eax, 0xffff
lea eax, [eax + eax*4]
mov edx, eax
shl edx, 4
add eax, edx
mov word [ecx + 0x198], ax
mov word [ecx + 0x196], ax
mov word [ecx + 0x194], ax
mov word [ecx + 0x192], ax
jmp case.0x4672c9.0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x144]
and eax, 0xffff
mov edx, eax
shl edx, 8
sub edx, eax
test byte [edi + 0x77], 2
mov word [edi + 0x144], dx
mov word [edi + 0x142], dx
mov word [edi + 0x140], dx
mov word [edi + 0x13e], dx
jne case.0x4672c9.0
mov eax, dword [edi + 0x198]
and eax, 0xffff
mov edx, eax
shl edx, 8
sub edx, eax
mov word [edi + 0x198], dx
mov word [edi + 0x196], dx
mov word [edi + 0x194], dx
mov word [edi + 0x192], dx
jmp case.0x4672c9.0
mov edx, dword [ebp + 8]
xor eax, eax
mov ebx, dword [ebp + 8]
mov al, byte [edx + 0x13c]
mov ecx, dword [edx + 0x118]
xor edx, edx
lea eax, [eax + eax*2]
mov dl, byte [eax + ecx]
mov word [ebx + 0x13e], dx
xor edx, edx
mov dl, byte [eax + ecx + 1]
mov word [ebx + 0x140], dx
mov al, byte [eax + ecx + 2]
and eax, 0xff
mov word [ebx + 0x142], ax
mov eax, dword [ebx + 0x74]
test eax, 0x80000
je 0x4679d8
test eax, 0x2000000
jne 0x467dd7
mov cx, word [ebx + 0x11e]
mov ebx, ecx
and ebx, 0xffff
test cx, cx
je 0x4679ab
xor edx, edx
mov edi, dword [ebp + 8]
mov eax, edx
inc edx
mov ecx, dword [edi + 0x18c]
add eax, ecx
xor byte [eax], 0xff
cmp ebx, edx
jne 0x46798f
mov cx, word [edi + 0x11e]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x13c]
mov dword [edx + 0x146], eax
mov eax, dword [edx + 0x140]
mov dword [edx + 0x14a], eax
mov eax, dword [edx + 0x144]
mov word [edx + 0x14e], ax
jmp 0x4672d7
mov ebx, dword [ebp + 8]
mov cx, word [ebx + 0x11e]
jmp 0x4679ab
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x11c]
mov ebx, dword [edx + 0x118]
test ax, ax
je 0x467a43
and eax, 0xffff
xor ecx, ecx
lea esi, [eax + eax*2]
mov edi, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx + ebx]
mov eax, dword [edi + 0x168]
mov al, byte [eax + edx]
xor edx, edx
mov byte [ecx + ebx], al
mov dl, byte [ecx + ebx + 1]
mov eax, dword [edi + 0x168]
mov al, byte [eax + edx]
xor edx, edx
mov byte [ecx + ebx + 1], al
mov dl, byte [ecx + ebx + 2]
mov eax, dword [edi + 0x168]
mov al, byte [eax + edx]
mov byte [ecx + ebx + 2], al
add ecx, 3
cmp ecx, esi
jne 0x467a02
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x74]
and bh, 0xdf
mov dword [eax + 0x74], ebx
jmp 0x467770
mov ecx, dword [ebp + 8]
mov esi, dword [edi + 0x118]
mov edi, dword [ecx + 0x11c]
mov ebx, edi
and ebx, 0xffff
mov dword [ebp - 0xac], ebx
mov al, byte [ecx + 0x134]
cmp al, 2
je 0x467e2f
cmp al, 3
je 0x467ead
dec al
je 0x467e99
fld1
fst qword [ebp - 0xa8]
fstp qword [ebp - 0xa0]
fldz
fld qword [0x4bd2a8]
fucompp
fnstsw ax
test ah, 0x45
jne 0x467ee1
mov ecx, dword [ebp + 8]
mov dx, word [ecx + 0x13e]
mov byte [ebp - 0x58], dl
mov bl, byte [ecx + 0x140]
mov byte [ebp - 0x68], bl
mov al, byte [ecx + 0x142]
mov byte [ebp - 0x78], al
mov eax, dword [ebp - 0xa4]
push eax
mov eax, dword [ebp - 0xa8]
push eax
mov eax, edx
and eax, 0xffff
push eax
fild dword [esp]
fld dword [0x4bd2b8]
sub esp, 4
fst qword [ebp - 0xc8]
fdivp st(1)
fstp qword [esp]
call sub.msvcrt.dll_pow
mov edx, dword [ebp + 8]
fmul qword [ebp - 0xc8]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
fld dword [0x4bd2bc]
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0xa4]
fst qword [ebp - 0xd0]
faddp st(1)
push eax
mov eax, dword [ebp - 0xa8]
push eax
fldcw word [ebp - 0x1c]
fistp word [ebp - 0x22]
fldcw word [ebp - 0x1a]
mov eax, dword [edx + 0x140]
mov bx, word [ebp - 0x22]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0xc8]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x20
fmul qword [ebp - 0xc8]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov edx, dword [ebp + 8]
mov ah, 0xc
fadd qword [ebp - 0xd0]
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0xa4]
push eax
mov eax, dword [ebp - 0xa8]
fldcw word [ebp - 0x1c]
fistp word [ebp - 0x22]
fldcw word [ebp - 0x1a]
push eax
mov cx, word [ebp - 0x22]
mov byte [ebp - 0x38], cl
mov ax, word [edx + 0x142]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0xc8]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x10
fmul qword [ebp - 0xc8]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
mov word [ebp - 0x1c], ax
fst qword [ebp - 0xc8]
fadd qword [ebp - 0xd0]
fldcw word [ebp - 0x1c]
fistp word [ebp - 0x22]
fldcw word [ebp - 0x1a]
mov cx, word [ebp - 0x22]
mov byte [ebp - 0x48], cl
test di, di
je 0x467d8f
and ebx, 0xff
xor edi, edi
mov word [ebp - 0xde], bx
mov bl, byte [ebp - 0x38]
and ebx, 0xff
mov word [ebp - 0xe0], bx
jmp 0x467c4f
mov eax, dword [edx + 0x18c]
mov cl, byte [edi + eax]
cmp cl, 0xff
je 0x467c62
test cl, cl
jne 0x467c98
mov cl, byte [ebp - 0x78]
mov byte [esi + 2], cl
mov bl, byte [ebp - 0x68]
mov byte [esi + 1], bl
mov al, byte [ebp - 0x58]
mov byte [esi], al
inc edi
add esi, 3
cmp dword [ebp - 0xac], edi
je 0x467d8f
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x11e]
and eax, 0xffff
cmp eax, edi
jg 0x467c1c
mov ebx, dword [ebp + 8]
xor edx, edx
mov dl, byte [esi]
mov eax, dword [ebx + 0x168]
mov al, byte [eax + edx]
xor edx, edx
mov byte [esi], al
mov dl, byte [esi + 1]
mov eax, dword [ebx + 0x168]
mov al, byte [eax + edx]
xor edx, edx
mov byte [esi + 1], al
mov dl, byte [esi + 2]
mov eax, dword [ebx + 0x168]
mov al, byte [eax + edx]
mov byte [esi + 2], al
jmp 0x467c3f
mov ebx, dword [ebp + 8]
xor edx, edx
mov dl, byte [esi]
mov eax, dword [ebx + 0x170]
xor ebx, ebx
mov bl, cl
mov al, byte [eax + edx]
mul cl
mov ecx, 0xff
mov edx, eax
mov eax, ecx
sub ax, bx
mov ebx, dword [ebp + 8]
imul ax, word [ebp - 0xde]
lea edx, [edx + eax + 0x80]
movzx eax, dh
add eax, edx
mov edx, dword [ebx + 0x16c]
movzx eax, ah
mov al, byte [edx + eax]
xor edx, edx
mov byte [esi], al
mov dl, byte [esi + 1]
mov eax, dword [ebx + 0x18c]
xor ebx, ebx
mov bl, byte [edi + eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x170]
mov dword [ebp - 0x110], eax
mov dl, byte [eax + edx]
mov eax, ecx
sub ax, bx
and edx, 0xff
imul edx, ebx
mov ebx, dword [ebp - 0xe0]
imul eax, ebx
mov ebx, dword [ebp + 8]
lea edx, [edx + eax + 0x80]
movzx eax, dh
add eax, edx
mov edx, dword [ebx + 0x16c]
movzx eax, ah
mov al, byte [edx + eax]
xor edx, edx
mov byte [esi + 1], al
mov dl, byte [esi + 2]
mov eax, dword [ebx + 0x18c]
xor ebx, ebx
mov bl, byte [edi + eax]
mov eax, dword [ebp + 8]
sub cx, bx
mov eax, dword [eax + 0x170]
mov dword [ebp - 0x114], eax
mov dl, byte [eax + edx]
xor eax, eax
mov al, byte [ebp - 0x48]
and edx, 0xff
imul ecx, eax
imul edx, ebx
lea edx, [edx + ecx + 0x80]
mov ecx, dword [ebp + 8]
movzx eax, dh
add eax, edx
mov edx, dword [ecx + 0x16c]
movzx eax, ah
mov al, byte [edx + eax]
mov byte [esi + 2], al
jmp 0x467c3f
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x74]
and ebx, 0xffffdf7f
or ebx, 0x40000
mov dword [edi + 0x74], ebx
jmp 0x467770
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x164]
fstp qword [ebp - 0x90]
fld dword [0x4bd2a4]
fstp qword [ebp - 0x88]
jmp 0x4673f7
mov eax, dword [ebp + 8]
fld dword [eax + 0x138]
jmp 0x467789
mov edi, dword [ebp + 8]
jmp 0x4679a4
cmp dx, ax
jne 0x4674e0
mov ecx, dword [ebp + 8]
mov ax, word [ecx + 0x14e]
mov word [ecx + 0x142], dx
mov word [ecx + 0x14c], ax
mov word [ecx + 0x14a], ax
mov word [ecx + 0x148], ax
mov word [ecx + 0x140], dx
mov word [ecx + 0x13e], dx
mov ebx, dword [ecx + 0x74]
cmp dword [ebp - 0xb0], 3
sete byte [ebp - 0x23]
jmp 0x46716a
mov bx, word [ecx + 0x13e]
mov eax, dword [ecx + 0x168]
and ebx, 0xffff
mov dl, byte [eax + ebx]
mov byte [ebp - 0x58], dl
mov ecx, dword [ecx + 0x140]
and ecx, 0xffff
mov dl, byte [eax + ecx]
mov byte [ebp - 0x68], dl
mov edx, dword [ebp + 8]
mov dx, word [edx + 0x142]
and edx, 0xffff
mov dword [ebp - 0x104], edx
mov al, byte [eax + edx]
mov edx, dword [ebp + 8]
mov byte [ebp - 0x78], al
mov eax, dword [edx + 0x170]
mov cl, byte [ecx + eax]
mov bl, byte [ebx + eax]
mov byte [ebp - 0x38], cl
mov ecx, dword [ebp - 0x104]
mov al, byte [ecx + eax]
mov byte [ebp - 0x48], al
jmp 0x467bf2
mov ebx, dword [ebp + 8]
fld dword [ebx + 0x164]
fstp qword [ebp - 0xa8]
jmp 0x467ab2
mov eax, dword [ebp + 8]
fld dword [eax + 0x138]
fld dword [0x4bd2a4]
fld st(0)
fdiv st(2)
fstp qword [ebp - 0xa8]
fxch st(1)
fmul dword [eax + 0x164]
fld st(1)
fdivrp st(1)
fst qword [ebp - 0xa0]
fsubrp st(1)
fabs
jmp 0x467a9f
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov ax, word [edx + 0x13e]
and eax, 0xffff
push eax
fild dword [esp]
fld dword [0x4bd2b8]
sub esp, 4
fst qword [ebp - 0xb8]
fdivp st(1)
fstp qword [esp]
call sub.msvcrt.dll_pow
mov ebx, dword [ebp - 0xa0]
fmul qword [ebp - 0xb8]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov edx, dword [ebp + 8]
mov ah, 0xc
fld dword [0x4bd2bc]
mov word [ebp - 0x1c], ax
fst qword [ebp - 0xc0]
faddp st(1)
fldcw word [ebp - 0x1c]
fistp word [ebp - 0x22]
fldcw word [ebp - 0x1a]
mov ax, word [ebp - 0x22]
mov byte [ebp - 0x58], al
mov eax, dword [ebp - 0x9c]
push eax
push ebx
mov eax, dword [edx + 0x140]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0xb8]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x20
fmul qword [ebp - 0xb8]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov edx, dword [ebp - 0xa0]
mov ah, 0xc
mov ebx, dword [ebp + 8]
fadd qword [ebp - 0xc0]
mov word [ebp - 0x1c], ax
fldcw word [ebp - 0x1c]
fistp word [ebp - 0x22]
fldcw word [ebp - 0x1a]
mov cx, word [ebp - 0x22]
mov byte [ebp - 0x68], cl
mov ecx, dword [ebp - 0x9c]
push ecx
push edx
mov ax, word [ebx + 0x142]
and eax, 0xffff
push eax
fild dword [esp]
fdiv qword [ebp - 0xb8]
sub esp, 4
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x10
fmul qword [ebp - 0xb8]
fnstcw word [ebp - 0x1a]
mov ax, word [ebp - 0x1a]
mov ah, 0xc
mov word [ebp - 0x1c], ax
fst qword [ebp - 0xb8]
fadd qword [ebp - 0xc0]
fldcw word [ebp - 0x1c]
fistp word [ebp - 0x22]
fldcw word [ebp - 0x1a]
mov ax, word [ebp - 0x22]
mov byte [ebp - 0x78], al
mov dx, word [ebx + 0x13e]
jmp 0x467ad1