Function at 0x40b080
Capabilities:
Encode data using xor

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xfc
mov edx, dword [ebp + 8]
mov al, byte [edx + 0x126]
mov edi, dword [edx + 0x70]
mov dword [ebp - 0x48], eax
test edi, 0x100
je case.0x40b2e3.0
test edi, 0x1000
jne 0x40b2ca
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x138]
mov dword [edx + 0x142], eax
mov eax, dword [edx + 0x13c]
mov dword [edx + 0x146], eax
mov ax, word [edx + 0x140]
mov word [edx + 0x14a], ax
cmp dword [ebp - 0x48], 3
je 0x40b3dd
test edi, 0x602000
je 0x40b106
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x15c]
fcomp dword [0x654870]
fnstsw ax
test ah, 0x40
je 0x40b46e
mov edx, edi
shr edx, 7
cmp dword [ebp - 0x48], 3
sete al
and eax, 0xff
test edx, eax
je 0x40b1a2
mov edx, dword [ebp + 8]
xor esi, esi
mov ecx, edx
mov ax, word [edx + 0x11a]
mov edx, dword [edx + 0x114]
and eax, 0xffff
mov dword [ebp - 0x9c], eax
mov ax, word [ecx + 0x13a]
mov byte [ebp - 0x38], al
cmp esi, dword [ebp - 0x9c]
mov ax, word [ecx + 0x13c]
mov byte [ebp - 0x37], al
mov ax, word [ecx + 0x13e]
mov byte [ebp - 0x36], al
jge 0x40b1a2
mov edi, 0xff
mov ebx, edx
nop
lea esi, [esi]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x188]
mov dl, byte [esi + eax]
test dl, dl
jne 0x40b2f0
mov eax, dword [ebp - 0x38]
mov word [ebx], ax
mov al, byte [ebp - 0x36]
mov byte [ebx + 2], al
inc esi
add ebx, 3
cmp esi, dword [ebp - 0x9c]
jl 0x40b170
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x70]
shr edi, 3
cmp dword [ebp - 0x48], 3
sete al
and eax, 0xff
test edi, eax
je 0x40b2c2
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 8]
mov edx, 8
xor eax, eax
mov cx, word [ecx + 0x118]
mov esi, edx
mov word [ebp - 0x9e], cx
mov edi, edx
mov al, byte [ebx + 0x17c]
sub esi, eax
xor eax, eax
mov dword [ebp - 0xa4], esi
mov esi, edx
mov al, byte [ebx + 0x17d]
mov edx, dword [ebp - 0xa4]
sub edi, eax
xor eax, eax
mov al, byte [ebx + 0x17e]
sub esi, eax
cmp dword [ebp - 0xa4], 9
setb al
and eax, 0xff
neg eax
and edx, eax
cmp edi, 9
setb al
and eax, 0xff
mov dword [ebp - 0xa4], edx
neg eax
and edi, eax
cmp esi, 9
setb al
and eax, 0xff
xor ebx, ebx
neg eax
and esi, eax
cmp bx, cx
jae 0x40b2c2
mov dword [ebp - 0xf8], 0
nop
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xf8]
inc ebx
mov edx, dword [eax + 0x114]
xor eax, eax
mov al, byte [ecx + edx]
mov cl, byte [ebp - 0xa4]
sar eax, cl
mov ecx, dword [ebp - 0xf8]
mov byte [ecx + edx], al
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x114]
xor eax, eax
mov al, byte [ecx + edx + 1]
mov ecx, edi
sar eax, cl
mov ecx, dword [ebp - 0xf8]
mov byte [ecx + edx + 1], al
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x114]
xor eax, eax
mov al, byte [ecx + edx + 2]
mov ecx, esi
sar eax, cl
mov ecx, dword [ebp - 0xf8]
mov byte [ecx + edx + 2], al
add ecx, 3
cmp bx, word [ebp - 0x9e]
mov dword [ebp - 0xf8], ecx
jb 0x40b250
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test al, 2
jne 0x40b7e5
xor eax, eax
mov al, byte [edx + 0x127]
cmp eax, 0x10
ja case.0x40b2e3.0
jmp dword [eax*4 + 0x654888]
cmp dl, 0xff
je 0x40b190
mov al, byte [ebx]
mov ecx, edi
mul dl
and edx, 0xff
mov word [ebp - 0xf4], ax
sub cx, dx
xor eax, eax
mov edx, ecx
mov al, byte [ebp - 0x38]
imul eax, edx
mov edx, dword [ebp - 0xf4]
lea ecx, [edx + eax + 0x80]
xor edx, edx
mov eax, ecx
mov dl, byte [ebp - 0x37]
movzx ecx, ch
and eax, 0xffff
add eax, ecx
sar eax, 8
mov byte [ebx], al
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x188]
mov ecx, edi
mov al, byte [esi + eax]
mov byte [ebp - 0xf1], al
mul byte [ebx + 1]
mov word [ebp - 0xf4], ax
xor eax, eax
mov al, byte [ebp - 0xf1]
sub cx, ax
mov eax, ecx
imul edx, eax
mov eax, dword [ebp - 0xf4]
lea ecx, [eax + edx + 0x80]
mov eax, ecx
and eax, 0xffff
movzx ecx, ch
add eax, ecx
mov ecx, edi
sar eax, 8
mov byte [ebx + 1], al
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x188]
xor edx, edx
mov dl, byte [ebp - 0x36]
mov al, byte [esi + eax]
mov byte [ebp - 0xf1], al
mul byte [ebx + 2]
mov word [ebp - 0xf4], ax
xor eax, eax
mov al, byte [ebp - 0xf1]
sub cx, ax
mov eax, ecx
imul edx, eax
mov eax, dword [ebp - 0xf4]
lea ecx, [eax + edx + 0x80]
mov eax, ecx
and eax, 0xffff
movzx ecx, ch
add eax, ecx
sar eax, 8
jmp 0x40b18d
mov bx, word [edx + 0x11a]
test bx, bx
je 0x40b0e4
fld dword [edx + 0x15c]
fmul dword [edx + 0x160]
fld1
fsubp st(1)
fabs
fcomp qword [0x654868]
fnstsw ax
test ah, 5
je 0x40b0e4
mov eax, ebx
xor ecx, ecx
and eax, 0xffff
mov dword [ebp - 0x4c], 0
cmp eax, 0
jle 0x40b45d
mov esi, dword [edx + 0x188]
mov ebx, eax
lea esi, [esi]
mov al, byte [ecx + esi]
test al, al
setne dl
inc al
setne al
and eax, 0xff
test eax, edx
je 0x40b44d
mov dword [ebp - 0x4c], 1
inc ecx
cmp ebx, ecx
jg 0x40b430
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x40b0e4
mov edx, dword [ebp + 8]
and edi, 0xffffdfff
mov dword [edx + 0x70], edi
jmp 0x40b0e4
sub esp, 0xc
push ecx
call fcn.0040a8a0
mov edx, dword [ebp + 8]
add esp, 0x10
mov edi, dword [edx + 0x70]
mov ecx, edi
test cl, cl
jns 0x40b880
cmp dword [ebp - 0x48], 3
je 0x40babe
mov ebx, dword [ebp + 8]
xor ecx, ecx
mov eax, 1
xor edx, edx
mov cl, byte [ebx + 0x127]
push edx
shl eax, cl
dec eax
xor ebx, ebx
push eax
mov esi, 0x3ff00000
fild qword [esp]
mov edx, dword [ebp + 8]
mov dword [ebp - 0xf0], ebx
fstp qword [ebp - 0x68]
mov dword [ebp - 0xec], esi
xor eax, eax
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], esi
mov al, byte [edx + 0x130]
add esp, 8
fld qword [ebp - 0xf0]
cmp eax, 2
je 0x40b8f5
jg 0x40be2f
dec eax
je 0x40c04a
fld qword [ebp - 0x68]
fdivr st(1)
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x140]
and eax, 0xffff
push eax
mov eax, dword [ebp - 0x6c]
fild dword [esp]
add esp, 4
fmulp st(1)
fxch st(1)
push eax
mov eax, dword [ebp - 0x70]
push eax
sub esp, 8
fstp qword [ebp - 0xe8]
fst qword [esp]
fstp qword [ebp - 0xd8]
call sub.msvcrt.dll_pow
add esp, 0x10
fld dword [0x654884]
fxch st(1)
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd st(1)
mov word [ebp - 0x3c], ax
mov eax, dword [ebp + 8]
fld qword [ebp - 0xd8]
fxch st(1)
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x74]
fldcw word [ebp - 0x3a]
fxch st(1)
fstp qword [ebp - 0xb0]
mov edx, dword [ebp - 0x74]
mov word [eax + 0x14a], dx
push esi
push ebx
sub esp, 8
fstp qword [esp]
call sub.msvcrt.dll_pow
mov ecx, dword [ebp + 8]
add esp, 0x10
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fld qword [ebp - 0xe8]
fxch st(1)
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov eax, dword [ebp - 0x40]
mov word [ecx + 0x140], ax
mov edx, eax
mov ax, word [ecx + 0x13a]
mov cx, word [ecx + 0x13c]
mov word [ebp - 0xa6], ax
mov word [ebp - 0xb2], cx
cmp ax, cx
je 0x40be46
mov edx, dword [ebp + 8]
mov dx, word [edx + 0x13e]
mov word [ebp - 0xb4], dx
fdiv qword [ebp - 0x68]
mov ax, word [ebp - 0xa6]
and eax, 0xffff
push eax
mov eax, dword [ebp - 0x6c]
fild dword [esp]
add esp, 4
fmul st(1)
fxch st(1)
push eax
mov eax, dword [ebp - 0x70]
push eax
sub esp, 8
fstp qword [ebp - 0x80]
fst qword [esp]
fstp qword [ebp - 0x88]
call sub.msvcrt.dll_pow
mov edx, dword [ebp + 8]
add esp, 0x10
mov ecx, dword [ebp - 0x6c]
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov eax, dword [ebp - 0x40]
mov word [edx + 0x144], ax
mov ax, word [ebp - 0xb2]
and eax, 0xffff
mov edx, dword [ebp - 0x70]
push eax
fild dword [esp]
add esp, 4
fmul qword [ebp - 0x80]
push ecx
push edx
sub esp, 8
fst qword [ebp - 0x90]
fstp qword [esp]
call sub.msvcrt.dll_pow
mov edx, dword [ebp + 8]
add esp, 0x10
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov eax, dword [ebp - 0x40]
mov word [edx + 0x146], ax
mov eax, dword [ebp - 0xb4]
and eax, 0xffff
push eax
mov eax, dword [ebp - 0x6c]
fild dword [esp]
add esp, 4
fmul qword [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x70]
push eax
sub esp, 8
fst qword [ebp - 0x98]
fstp qword [esp]
call sub.msvcrt.dll_pow
mov edx, dword [ebp + 8]
add esp, 0x10
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov eax, dword [ebp - 0x40]
mov word [edx + 0x148], ax
mov eax, dword [ebp - 0x84]
push esi
push ebx
push eax
mov eax, dword [ebp - 0x88]
push eax
call sub.msvcrt.dll_pow
mov ecx, dword [ebp + 8]
add esp, 0x10
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov eax, dword [ebp - 0x40]
mov word [ecx + 0x13a], ax
mov eax, dword [ebp - 0x8c]
push esi
push ebx
push eax
mov eax, dword [ebp - 0x90]
push eax
call sub.msvcrt.dll_pow
add esp, 0x10
mov edx, dword [ebp + 8]
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ecx, dword [ebp - 0x98]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov eax, dword [ebp - 0x40]
mov word [edx + 0x13c], ax
push esi
push ebx
mov ebx, dword [ebp - 0x94]
push ebx
push ecx
call sub.msvcrt.dll_pow
mov ecx, dword [ebp + 8]
add esp, 0x10
fmul qword [ebp - 0x68]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
mov word [ebp - 0x3c], ax
fst qword [ebp - 0x68]
fadd qword [ebp - 0xb0]
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov eax, dword [ebp - 0x40]
mov word [ecx + 0x13e], ax
jmp 0x40b1a2
cmp dword [ebp - 0x48], 3
jne case.0x40b2e3.0
mov ecx, dword [ebp + 8]
xor eax, eax
mov ebx, ecx
xor edx, edx
mov al, byte [ecx + 0x138]
mov ecx, dword [ecx + 0x114]
lea eax, [eax + eax*2]
mov dl, byte [eax + ecx]
mov word [ebx + 0x13a], dx
xor edx, edx
mov dl, byte [eax + ecx + 1]
mov word [ebx + 0x13c], dx
mov al, byte [eax + ecx + 2]
and eax, 0xff
mov word [ebx + 0x13e], ax
test edi, 0x80000
je case.0x40b2e3.0
test edi, 0x2000000
jne case.0x40b2e3.0
mov ax, word [ebx + 0x11a]
xor edx, edx
mov ecx, eax
and ecx, 0xffff
cmp edx, ecx
jge case.0x40b2e3.0
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x188]
xor byte [edx + eax], 0xff
inc edx
cmp edx, ecx
jl 0x40b85f
mov edi, dword [esi + 0x70]
jmp case.0x40b2e3.0
cmp dword [ebp - 0x48], 3
jne 0x40b1a2
mov ebx, dword [ebp + 8]
mov ax, word [ebx + 0x118]
mov edx, dword [ebx + 0x114]
mov esi, eax
xor ebx, ebx
and esi, 0xffff
cmp ebx, esi
jge 0x40b1a2
mov ecx, edx
mov edi, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
inc ebx
mov eax, dword [edi + 0x164]
mov al, byte [edx + eax]
xor edx, edx
mov byte [ecx], al
mov dl, byte [ecx + 1]
mov eax, dword [edi + 0x164]
mov al, byte [edx + eax]
xor edx, edx
mov byte [ecx + 1], al
mov dl, byte [ecx + 2]
mov eax, dword [edi + 0x164]
mov al, byte [edx + eax]
mov byte [ecx + 2], al
add ecx, 3
cmp ebx, esi
jl 0x40b8ae
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x70]
jmp 0x40b1a2
mov eax, dword [ebp + 8]
fld dword [eax + 0x15c]
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], esi
fld qword [ebp - 0xf0]
fdiv st(1)
fxch st(1)
fmul dword [eax + 0x160]
fxch st(1)
fstp qword [ebp - 0x70]
fld qword [ebp - 0xf0]
fdivrp st(1)
fstp qword [ebp - 0xf0]
mov ebx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xec]
jmp 0x40b4f4
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x140]
mov word [edx + 0x13e], ax
mov word [edx + 0x13c], ax
mov word [edx + 0x13a], ax
jmp case.0x40b2e3.0
mov esi, dword [ebp + 8]
mov ax, word [esi + 0x140]
and eax, 0xffff
mov edx, eax
shl edx, 4
add edx, eax
mov word [esi + 0x140], dx
mov word [esi + 0x13e], dx
mov word [esi + 0x13c], dx
mov word [esi + 0x13a], dx
test edi, 0x2000000
jne case.0x40b2e3.0
mov ax, word [esi + 0x194]
and eax, 0xffff
mov edx, eax
shl edx, 4
add edx, eax
mov word [esi + 0x194], dx
mov word [esi + 0x192], dx
mov word [esi + 0x190], dx
mov word [esi + 0x18e], dx
jmp case.0x40b2e3.0
mov ebx, dword [ebp + 8]
mov ax, word [ebx + 0x140]
and eax, 0xffff
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 edi, 0x2000000
jne case.0x40b2e3.0
mov ax, word [ebx + 0x194]
and eax, 0xffff
lea eax, [eax + eax*4]
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 case.0x40b2e3.0
mov ecx, dword [ebp + 8]
mov ax, word [ecx + 0x140]
and eax, 0xffff
mov edx, eax
shl edx, 8
sub edx, eax
mov word [ecx + 0x140], dx
mov word [ecx + 0x13e], dx
mov word [ecx + 0x13c], dx
mov word [ecx + 0x13a], dx
test edi, 0x2000000
jne case.0x40b2e3.0
mov ax, word [ecx + 0x194]
and eax, 0xffff
mov edx, eax
shl edx, 8
sub edx, eax
mov word [ecx + 0x194], dx
mov word [ecx + 0x192], dx
mov word [ecx + 0x190], dx
mov word [ecx + 0x18e], dx
jmp case.0x40b2e3.0
mov ax, word [edx + 0x118]
mov ebx, dword [edx + 0x114]
and eax, 0xffff
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x54], eax
mov al, byte [edx + 0x130]
cmp al, 2
je 0x40bfeb
and eax, 0xff
cmp eax, 2
je 0x40c099
jg 0x40c05b
dec eax
je 0x40c0a4
fld1
fst qword [ebp - 0xf0]
mov ebx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xec]
fst qword [ebp - 0x60]
fld qword [ebp - 0x60]
fsubrp st(1)
fabs
fcomp qword [0x654868]
fnstsw ax
test ah, 5
je 0x40beaf
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov dx, word [edx + 0x13a]
mov byte [ebp - 0x28], dl
mov word [ebp - 0xa6], dx
mov cx, word [ecx + 0x13c]
fld dword [0x654880]
fld dword [0x654884]
fxch st(1)
mov byte [ebp - 0x27], cl
mov word [ebp - 0xb2], cx
mov ax, word [eax + 0x13e]
fstp qword [ebp - 0xc0]
fstp qword [ebp - 0xb0]
mov word [ebp - 0xb4], ax
mov byte [ebp - 0x26], al
mov ax, word [ebp - 0xa6]
and eax, 0xffff
push eax
fild dword [esp]
fmul qword [0x654878]
mov dword [esp], esi
push ebx
sub esp, 8
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x10
fmul qword [ebp - 0xc0]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp word [ebp - 0x42]
fldcw word [ebp - 0x3a]
mov ax, word [ebp - 0x42]
mov byte [ebp - 0x38], al
mov ax, word [ebp - 0xb2]
and eax, 0xffff
push eax
fild dword [esp]
fmul qword [0x654878]
mov dword [esp], esi
push ebx
sub esp, 8
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x10
fmul qword [ebp - 0xc0]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp word [ebp - 0x42]
fldcw word [ebp - 0x3a]
mov ax, word [ebp - 0x42]
mov byte [ebp - 0x37], al
mov eax, dword [ebp - 0xb4]
and eax, 0xffff
push eax
fild dword [esp]
fmul qword [0x654878]
mov dword [esp], esi
push ebx
sub esp, 8
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x10
fmul qword [ebp - 0xc0]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
mov word [ebp - 0x3c], ax
fst qword [ebp - 0xc0]
fadd qword [ebp - 0xb0]
fldcw word [ebp - 0x3c]
fistp word [ebp - 0x42]
fldcw word [ebp - 0x3a]
mov ax, word [ebp - 0x42]
mov dword [ebp - 0x58], 0
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 0x36], al
cmp dword [ebp - 0x58], ecx
jge 0x40b1a2
mov edi, 0xff
mov ebx, dword [ebp - 0x50]
jmp 0x40bce3
mov esi, dword [ebp + 8]
xor edx, edx
mov dl, byte [ebx]
mov eax, dword [esi + 0x164]
mov al, byte [edx + eax]
xor edx, edx
mov byte [ebx], al
mov dl, byte [ebx + 1]
mov eax, dword [esi + 0x164]
mov al, byte [edx + eax]
xor edx, edx
mov byte [ebx + 1], al
mov dl, byte [ebx + 2]
mov eax, dword [esi + 0x164]
mov al, byte [edx + eax]
mov byte [ebx + 2], al
add ebx, 3
mov eax, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x58], eax
jge 0x40b19c
mov esi, dword [ebp + 8]
mov ax, word [esi + 0x11a]
and eax, 0xffff
cmp eax, dword [ebp - 0x58]
jle 0x40bc99
mov eax, dword [esi + 0x188]
mov edx, dword [ebp - 0x58]
movzx esi, byte [edx + eax]
mov ecx, esi
cmp cl, 0xff
je 0x40bc99
test cl, cl
jne 0x40bd1a
mov eax, dword [ebp - 0x28]
mov word [ebx], ax
mov al, byte [ebp - 0x26]
jmp 0x40bcca
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [ebx]
mov eax, dword [eax + 0x16c]
mov edx, eax
mov eax, esi
mul byte [ecx + edx]
mov edx, esi
mov esi, edi
and edx, 0xff
mov ecx, eax
sub si, dx
xor eax, eax
mov edx, esi
mov al, byte [ebp - 0x38]
imul eax, edx
lea ecx, [ecx + eax + 0x80]
mov eax, ecx
and eax, 0xffff
movzx ecx, ch
add eax, ecx
mov ecx, dword [ebp + 8]
movzx eax, ah
mov edx, dword [ecx + 0x168]
xor ecx, ecx
mov cl, byte [ebx + 1]
mov al, byte [eax + edx]
mov byte [ebx], al
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x16c]
mov eax, dword [esi + 0x188]
mov esi, dword [ebp - 0x58]
mov al, byte [esi + eax]
mov esi, edi
mov byte [ebp - 0xf1], al
mul byte [ecx + edx]
mov ecx, eax
xor eax, eax
mov al, byte [ebp - 0xf1]
xor edx, edx
sub si, ax
mov dl, byte [ebp - 0x37]
mov eax, esi
imul edx, eax
lea ecx, [ecx + edx + 0x80]
mov eax, ecx
and eax, 0xffff
movzx ecx, ch
add eax, ecx
mov ecx, dword [ebp + 8]
movzx eax, ah
mov edx, dword [ecx + 0x168]
xor ecx, ecx
mov cl, byte [ebx + 2]
mov al, byte [eax + edx]
mov byte [ebx + 1], al
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x16c]
mov eax, dword [esi + 0x188]
mov esi, dword [ebp - 0x58]
mov al, byte [esi + eax]
mov esi, edi
mov byte [ebp - 0xf1], al
mul byte [ecx + edx]
mov ecx, eax
xor eax, eax
mov al, byte [ebp - 0xf1]
xor edx, edx
sub si, ax
mov dl, byte [ebp - 0x36]
mov eax, esi
imul edx, eax
lea ecx, [ecx + edx + 0x80]
mov eax, ecx
and eax, 0xffff
movzx ecx, ch
add eax, ecx
mov ecx, dword [ebp + 8]
movzx eax, ah
mov edx, dword [ecx + 0x168]
mov al, byte [eax + edx]
jmp 0x40bcca
cmp eax, 3
jne 0x40b4f4
mov eax, dword [ebp + 8]
fld dword [eax + 0x134]
jmp 0x40b8fe
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x13e]
cmp word [ebp - 0xa6], ax
mov word [ebp - 0xb4], ax
jne 0x40b5f1
cmp word [ebp - 0xa6], dx
jne 0x40b5f1
fstp st(0)
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x74]
mov cx, word [ebp - 0xa6]
mov word [ebx + 0x148], si
mov word [ebx + 0x146], si
mov word [ebx + 0x144], si
mov word [ebx + 0x13e], cx
mov word [ebx + 0x13c], cx
mov word [ebx + 0x13a], cx
jmp 0x40b1a2
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x13a]
mov word [ebp - 0xa6], ax
and eax, 0xffff
push eax
mov eax, dword [ebp - 0x5c]
fild dword [esp]
add esp, 4
fmul qword [0x654878]
push eax
mov eax, dword [ebp - 0x60]
push eax
sub esp, 8
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x10
fld dword [0x654880]
fmul st(1), st(0)
fnstcw word [ebp - 0x3a]
fstp qword [ebp - 0xc0]
fld dword [0x654884]
fadd st(1), st(0)
fxch st(1)
mov ax, word [ebp - 0x3a]
mov ah, 0xc
mov ecx, dword [ebp - 0x60]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp word [ebp - 0x42]
fldcw word [ebp - 0x3a]
fstp qword [ebp - 0xb0]
mov ax, word [ebp - 0x42]
mov byte [ebp - 0x28], al
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x13c]
mov word [ebp - 0xb2], ax
and eax, 0xffff
push eax
mov eax, dword [ebp - 0x5c]
fild dword [esp]
add esp, 4
fmul qword [0x654878]
push eax
push ecx
sub esp, 8
fstp qword [esp]
call sub.msvcrt.dll_pow
mov edx, dword [ebp + 8]
add esp, 0x10
fmul qword [ebp - 0xc0]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp word [ebp - 0x42]
fldcw word [ebp - 0x3a]
mov ax, word [ebp - 0x42]
mov byte [ebp - 0x27], al
mov dx, word [edx + 0x13e]
mov eax, edx
mov word [ebp - 0xb4], dx
and eax, 0xffff
mov edx, dword [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x60]
fild dword [esp]
add esp, 4
fmul qword [0x654878]
push edx
push eax
sub esp, 8
fstp qword [esp]
call sub.msvcrt.dll_pow
add esp, 0x10
fmul qword [ebp - 0xc0]
fnstcw word [ebp - 0x3a]
mov ax, word [ebp - 0x3a]
mov ah, 0xc
fadd qword [ebp - 0xb0]
mov word [ebp - 0x3c], ax
fldcw word [ebp - 0x3c]
fistp word [ebp - 0x42]
fldcw word [ebp - 0x3a]
mov ax, word [ebp - 0x42]
jmp 0x40bb81
mov si, word [edx + 0x13a]
mov edx, dword [edx + 0x164]
and esi, 0xffff
mov ecx, dword [ebp + 8]
mov al, byte [esi + edx]
mov byte [ebp - 0x28], al
mov bx, word [ecx + 0x13c]
and ebx, 0xffff
mov al, byte [ebx + edx]
mov byte [ebp - 0x27], al
mov cx, word [ecx + 0x13e]
and ecx, 0xffff
mov al, byte [ecx + edx]
mov byte [ebp - 0x26], al
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x16c]
mov al, byte [esi + edx]
mov byte [ebp - 0x38], al
mov al, byte [ebx + edx]
mov byte [ebp - 0x37], al
mov al, byte [ecx + edx]
jmp 0x40bc79
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x160]
fstp qword [ebp - 0x70]
jmp 0x40b4f4
cmp eax, 3
jne 0x40baff
mov eax, dword [ebp + 8]
fld dword [eax + 0x134]
fld1
fld st(0)
fdiv st(2)
fstp qword [ebp - 0xf0]
fxch st(1)
fmul dword [eax + 0x160]
mov ebx, dword [ebp - 0xf0]
fld st(1)
mov esi, dword [ebp - 0xec]
fdivrp st(1)
fstp qword [ebp - 0x60]
jmp 0x40bb16
mov eax, dword [ebp + 8]
fld dword [eax + 0x15c]
jmp 0x40c06d
mov edx, dword [ebp + 8]
fld1
fld dword [edx + 0x160]
fstp qword [ebp - 0xf0]
jmp 0x40bb07