Function at 0x443fa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x1c]
xor ebx, ebx
cmp eax, ebx
mov esi, ecx
je 0x443ffa
push 0x49
mov ecx, edi
call fcn.004495d0
push 0x3a
mov ecx, edi
call fcn.004495d0
push 0xffffffffffffff93
mov ecx, edi
call fcn.004495d0
push 0xffffffffffffff86
mov ecx, edi
call fcn.004495d0
mov dword [esi + 0x478], ebx
mov dword [esi + 0x47c], ebx
mov dword [esi + 0x480], 1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
add ecx, eax
cmp eax, ecx
mov dword [esp + 0x20], ecx
jge 0x445874
jmp 0x444014
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x18]
push edx
push 1
push eax
mov ecx, esi
mov dword [esp + 0x24], 1
call fcn.00442cd0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x445874
mov eax, dword [esi + 0x478]
mov ecx, eax
shl ecx, 4
mov edx, dword [ecx + esi + 0x158]
test edx, edx
jne case.0x444082.11
lea ebx, [eax - 1]
lea edx, [ebx + 0x17]
shl edx, 4
mov dword [esi + 0x478], ebx
mov eax, dword [edx + esi]
cmp eax, 0xc00
jg 0x445260
je case.0x445275.3075
dec eax
cmp eax, 0x1e
ja case.0x445275.3075
jmp dword [eax*4 + 0x4458c4]
mov eax, dword [esi + 0x480]
test eax, eax
je 0x4440ad
mov eax, dword [ebp + 0x18]
push eax
push edi
and ebx, 1
push ebx
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov eax, dword [esi + 0x478]
fld qword [0x45b118]
xor ecx, ecx
fstp qword [esp + 0x28]
cmp eax, ecx
mov dword [esp + 0x10], ecx
jle 0x4447eb
lea ebx, [esi + 0x180]
jmp 0x4440d7
mov ecx, dword [esp + 0x14]
fld qword [ebx]
push edi
fcomp qword [0x45b118]
fnstsw ax
test ah, 5
jp 0x44412c
fld qword [ebx - 0x10]
mov edx, dword [ebx - 4]
fadd qword [ebx]
mov eax, dword [ebx - 0x14]
or edx, eax
or ecx, edx
fadd qword [esp + 0x2c]
push ecx
mov dword [esp + 0x1c], ecx
sub esp, 8
fstp qword [esp + 0x38]
mov ecx, esi
fld qword [esp + 0x38]
fstp qword [esp]
call fcn.00442620
mov eax, dword [ebx - 4]
fld qword [ebx]
push edi
fchs
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
jmp 0x44417d
fld qword [esp + 0x2c]
mov edx, dword [ebx - 0x14]
fadd qword [ebx - 0x10]
or ecx, edx
push ecx
mov dword [esp + 0x1c], ecx
fstp qword [esp + 0x30]
sub esp, 8
fld qword [esp + 0x38]
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [ebx - 4]
fld qword [ebx]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esp + 0x28]
mov eax, dword [esp + 0x14]
fadd qword [ebx]
mov edx, dword [ebx - 4]
or eax, edx
fstp qword [esp + 0x28]
mov dword [esp + 0x14], eax
push 1
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 2
add ebx, 0x20
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4440d3
jmp 0x4447eb
mov eax, dword [esi + 0x480]
test eax, eax
je 0x4441cb
mov eax, dword [ebp + 0x18]
push eax
push edi
and ebx, 1
push ebx
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov eax, dword [esi + 0x478]
fld qword [0x45b118]
xor ecx, ecx
fstp qword [esp + 0x28]
cmp eax, ecx
mov dword [esp + 0x10], ecx
jle 0x4447eb
lea ebx, [esi + 0x180]
jmp 0x4441f5
mov ecx, dword [esp + 0x14]
fld qword [ebx]
push edi
fcomp qword [0x45b118]
fld qword [esp + 0x2c]
fadd qword [ebx - 0x10]
fnstsw ax
test ah, 5
jp 0x444248
fadd qword [ebx]
mov edx, dword [ebx - 0x14]
or edx, dword [ebx - 4]
or ecx, edx
fstp qword [esp + 0x2c]
fld qword [esp + 0x2c]
push ecx
mov dword [esp + 0x1c], ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx]
mov eax, dword [ebx - 4]
fchs
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
jmp 0x444292
mov edx, dword [ebx - 0x14]
fstp qword [esp + 0x2c]
fld qword [esp + 0x2c]
or ecx, edx
push ecx
mov dword [esp + 0x1c], ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx]
mov ecx, dword [ebx - 4]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esp + 0x28]
mov eax, dword [esp + 0x14]
fadd qword [ebx]
mov edx, dword [ebx - 4]
or eax, edx
fstp qword [esp + 0x28]
mov dword [esp + 0x14], eax
push 3
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 2
add ebx, 0x20
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4441f1
jmp 0x4447eb
mov eax, dword [esi + 0x480]
test eax, eax
je 0x4442e5
mov eax, dword [ebp + 0x18]
xor ecx, ecx
cmp ebx, 2
sete cl
push eax
push edi
push ecx
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov edx, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 4
jmp 0x445855
test ebx, ebx
mov dword [esp + 0x10], 0
jle case.0x445275.3075
lea ebx, [esi + 0x170]
lea ecx, [ecx]
mov eax, dword [ebx - 4]
fld qword [ebx]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 5
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 2
add ebx, 0x20
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444320
jmp case.0x445275.3075
test ebx, ebx
mov dword [esp + 0x10], 0
jle case.0x445275.3075
lea ebx, [esi + 0x170]
mov edx, dword [ebx - 4]
fld qword [ebx]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
xor eax, eax
mov al, byte [esp + 0x10]
mov ecx, edi
and eax, 0xffffff01
or eax, 6
push eax
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
inc eax
add ebx, 0x10
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444385
jmp case.0x445275.3075
test ebx, ebx
mov dword [esp + 0x10], 0
jle case.0x445275.3075
lea ebx, [esi + 0x170]
mov ecx, dword [ebx - 4]
fld qword [ebx]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
xor edx, edx
mov dl, byte [esp + 0x10]
not dl
mov ecx, edi
and edx, 0xffffff01
or edx, 6
push edx
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
inc eax
add ebx, 0x10
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4443e0
jmp case.0x445275.3075
test ebx, ebx
mov dword [esp + 0x10], 0
jle case.0x445275.3075
lea ebx, [esi + 0x170]
mov edi, edi
mov eax, dword [ebx - 4]
fld qword [ebx]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov edx, dword [ebx + 0x1c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov eax, dword [ebx + 0x2c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x40]
mov ecx, dword [ebx + 0x3c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x50]
mov edx, dword [ebx + 0x4c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 6
add ebx, 0x60
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444440
jmp case.0x445275.3075
cmp ebx, 1
jl case.0x444082.11
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
cmp eax, 0x4d8
jge 0x444507
mov dword [esp + 0x14], 0x6b
jmp 0x444522
xor ecx, ecx
cmp eax, 0x846c
setge cl
dec ecx
and ecx, 0xffff846b
add ecx, 0x8000
mov dword [esp + 0x14], ecx
lea edx, [ebx + 0x16]
shl edx, 4
fld qword [edx + esi]
call fcn.0044a5ec
add eax, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ebp + 0x14]
jmp 0x444d95
mov eax, dword [esi + 0x480]
test eax, eax
je 0x44457b
cmp ebx, 1
je 0x44455f
cmp ebx, 5
je 0x44455f
xor eax, eax
jmp 0x444564
mov eax, 1
mov edx, dword [ebp + 0x18]
push edx
push edi
push eax
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov eax, dword [esi + 0x478]
cmp eax, 4
jne 0x44461e
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x170]
mov eax, dword [esi + 0x16c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x180]
mov ecx, dword [esi + 0x17c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov edx, dword [esi + 0x18c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
mov eax, dword [esi + 0x19c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 6
push 0xc
mov ecx, edi
call fcn.004495d0
mov ecx, eax
jmp 0x445857
test eax, eax
jne case.0x445275.3075
push 0xe
jmp 0x445855
mov eax, dword [esi + 0x480]
test eax, eax
je case.0x445275.3075
mov ecx, dword [ebp + 0x18]
xor edx, edx
test ebx, ebx
setg dl
push ecx
push edi
mov ecx, esi
push edx
call fcn.00443330
mov dword [esi + 0x480], 0
jmp case.0x445275.3075
mov eax, dword [esi + 0x480]
test eax, eax
je 0x444682
mov ecx, dword [ebp + 0x18]
push ecx
push edi
and ebx, 1
push ebx
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov eax, dword [esi + 0x478]
test eax, eax
jle 0x44469f
mov ecx, dword [esi + 0x47c]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [esi + 0x47c], ecx
mov edx, dword [esi + 0x47c]
mov eax, dword [esp + 0x1c]
add edx, 7
sar edx, 3
add eax, edx
mov dword [esp + 0x1c], eax
jmp case.0x445275.3075
mov eax, dword [esi + 0x480]
test eax, eax
je 0x4446de
mov eax, dword [ebp + 0x18]
push eax
push edi
and ebx, 1
push ebx
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov eax, dword [esi + 0x478]
test eax, eax
jle 0x4446fb
mov ecx, dword [esi + 0x47c]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [esi + 0x47c], ecx
mov ecx, dword [esi + 0x47c]
mov eax, dword [esp + 0x1c]
add ecx, 7
sar ecx, 3
add eax, ecx
mov dword [esp + 0x1c], eax
jmp case.0x445275.3075
mov eax, dword [esi + 0x480]
test eax, eax
je 0x44473f
mov edx, dword [ebp + 0x18]
xor eax, eax
cmp ebx, 3
sete al
push edx
push edi
mov ecx, esi
push eax
call fcn.00443330
mov dword [esi + 0x480], 0
mov ecx, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x180]
mov edx, dword [esi + 0x17c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 0x15
jmp 0x445855
mov eax, dword [esi + 0x480]
test eax, eax
je 0x4447a5
mov eax, dword [ebp + 0x18]
xor ecx, ecx
cmp ebx, 2
sete cl
push eax
push edi
push ecx
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov edx, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 0x16
jmp 0x445855
mov eax, dword [esi + 0x480]
test eax, eax
je 0x4447eb
mov eax, dword [ebp + 0x18]
push eax
push edi
and ebx, 1
push ebx
mov ecx, esi
call fcn.00443330
mov dword [esi + 0x480], 0
mov eax, dword [esi + 0x478]
mov ecx, dword [esi + 0x47c]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [esi + 0x47c], ecx
jmp case.0x445275.3075
add ebx, 0xfffffffe
test ebx, ebx
mov dword [esp + 0x10], 0
jle 0x4448c7
lea ebx, [esi + 0x170]
mov ecx, dword [ebx - 4]
fld qword [ebx]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x40]
mov edx, dword [ebx + 0x3c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x50]
mov eax, dword [ebx + 0x4c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 6
sub ecx, 2
add ebx, 0x60
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444822
mov eax, dword [esp + 0x10]
mov edx, eax
shl edx, 4
mov ecx, dword [edx + esi + 0x16c]
lea ebx, [edx + esi + 0x16c]
push edi
add eax, 0x17
push ecx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx]
push edi
add eax, 0x18
push edx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 5
jmp 0x445855
add ebx, 0xfffffffa
test ebx, ebx
mov dword [esp + 0x10], 0
jle 0x44497c
lea ebx, [esi + 0x16c]
mov ecx, dword [ebx]
fld qword [ebx + 4]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x14]
mov edx, dword [ebx]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 5
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 2
sub ecx, 6
add ebx, 0x20
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444930
mov eax, dword [esp + 0x10]
mov edx, eax
shl edx, 4
mov ecx, dword [edx + esi + 0x16c]
lea ebx, [edx + esi]
push edi
add eax, 0x17
push ecx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x17c]
push edi
add eax, 0x18
push edx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [ebx + 0x18c]
mov edx, dword [esp + 0x10]
push edi
add edx, 0x19
push ecx
shl edx, 4
fld qword [edx + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x19c]
push edi
add ecx, 0x1a
shl ecx, 4
fld qword [ecx + esi]
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x1ac]
push edi
add eax, 0x1b
push edx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov edx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x1bc]
add edx, 0x1c
shl edx, 4
fld qword [edx + esi]
jmp 0x445844
and ebx, 0x80000001
jns 0x444a54
dec ebx
or ebx, 0xfffffffe
inc ebx
cmp ebx, 1
jne 0x444b0d
mov eax, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x180]
mov ecx, dword [esi + 0x17c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov edx, dword [esi + 0x18c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
mov eax, dword [esi + 0x19c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1b0]
mov ecx, dword [esi + 0x1ac]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
mov dword [esp + 0x10], 5
jmp 0x444b15
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
cmp edx, dword [esi + 0x478]
jge case.0x445275.3075
mov ebx, edx
add ebx, 0x17
shl ebx, 4
add ebx, esi
nop
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx]
mov eax, dword [ebx - 4]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov edx, dword [ebx + 0x1c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov eax, dword [ebx + 0x2c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 4
add ebx, 0x40
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444b30
jmp case.0x445275.3075
and ebx, 0x80000001
jns 0x444be6
dec ebx
or ebx, 0xfffffffe
inc ebx
cmp ebx, 1
jne 0x444c9f
mov ecx, dword [esi + 0x17c]
fld qword [esi + 0x180]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x170]
mov edx, dword [esi + 0x16c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov eax, dword [esi + 0x18c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
mov ecx, dword [esi + 0x19c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1b0]
mov edx, dword [esi + 0x1ac]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
mov dword [esp + 0x10], 5
jmp 0x444ca7
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, dword [esi + 0x478]
jge case.0x445275.3075
mov ebx, eax
add ebx, 0x17
shl ebx, 4
add ebx, esi
mov ecx, dword [ebx - 4]
fld qword [ebx]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 4
add ebx, 0x40
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444cc1
jmp case.0x445275.3075
cmp ebx, 1
jl case.0x444082.11
lea edx, [ebx + 0x16]
shl edx, 4
fld qword [edx + esi]
call fcn.0044a5ec
add eax, dword [esi + 0x15c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
lea eax, [esi + 0x58]
dec ebx
push eax
mov ecx, esi
mov dword [esi + 0x478], ebx
mov dword [esp + 0x28], 1
call fcn.00443130
mov eax, dword [esp + 0x18]
test eax, eax
je case.0x444082.11
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x34]
push 0
push ecx
mov ecx, dword [esp + 0x38]
push edx
push edi
push eax
push ecx
mov ecx, esi
call fcn.00443fa0
jmp case.0x444082.11
xor eax, eax
test ebx, ebx
mov dword [esp + 0x10], eax
jle 0x444edb
lea ebx, [esi + 0x170]
lea ecx, [ecx]
mov edx, dword [esi + 0x478]
sub edx, 5
cmp eax, edx
je 0x444edb
and eax, 0x80000007
jns 0x444e0d
dec eax
or eax, 0xfffffff8
inc eax
fld qword [ebx]
push edi
jne 0x444e66
mov eax, dword [ebx - 4]
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov edx, dword [ebx + 0x1c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov eax, dword [ebx + 0x2c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 0x1e
jmp 0x444eb8
mov ecx, dword [ebx - 4]
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 0x1f
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 4
add ebx, 0x40
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x444df0
mov edx, dword [esi + 0x478]
sub edx, 5
cmp eax, edx
jne case.0x445275.3075
and eax, 0x80000007
jns 0x444ef8
dec eax
or eax, 0xfffffff8
inc eax
push edi
jne 0x444fbf
fld qword [0x45b118]
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov ecx, eax
shl ecx, 4
mov edx, dword [ecx + esi + 0x16c]
lea ebx, [ecx + esi]
push edi
add eax, 0x17
push edx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x17c]
push edi
add ecx, 0x18
shl ecx, 4
fld qword [ecx + esi]
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x18c]
push edi
add eax, 0x19
push edx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [ebx + 0x19c]
mov edx, dword [esp + 0x10]
push edi
add edx, 0x1a
push ecx
shl edx, 4
fld qword [edx + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x1ac]
add ecx, 0x1b
push edi
shl ecx, 4
fld qword [ecx + esi]
push eax
jmp 0x445846
mov eax, dword [esp + 0x14]
mov edx, eax
shl edx, 4
mov ecx, dword [edx + esi + 0x16c]
lea ebx, [edx + esi]
add eax, 0x17
push ecx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x17c]
push edi
add eax, 0x18
push edx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [ebx + 0x18c]
mov edx, dword [esp + 0x10]
push edi
add edx, 0x19
push ecx
shl edx, 4
fld qword [edx + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x1ac]
push edi
add ecx, 0x1b
shl ecx, 4
fld qword [ecx + esi]
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x19c]
add eax, 0x1a
shl eax, 4
fld qword [eax + esi]
push edi
push edx
jmp 0x445846
xor eax, eax
test ebx, ebx
mov dword [esp + 0x10], eax
jle 0x44517c
lea ebx, [esi + 0x170]
mov ecx, dword [esi + 0x478]
sub ecx, 5
cmp eax, ecx
je 0x44517c
and eax, 0x80000007
jns 0x4450b0
dec eax
or eax, 0xfffffff8
inc eax
fld qword [ebx]
mov ecx, esi
push edi
jne 0x445109
mov edx, dword [ebx - 4]
push edx
sub esp, 8
fstp qword [esp]
call fcn.00442620
mov eax, dword [ebx + 0xc]
fld qword [ebx + 0x10]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov ecx, dword [ebx + 0x1c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov edx, dword [ebx + 0x2c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 0x1f
jmp 0x445159
mov eax, dword [ebx - 4]
push eax
sub esp, 8
fstp qword [esp]
call fcn.00442620
mov ecx, dword [ebx + 0xc]
fld qword [ebx + 0x10]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x20]
mov edx, dword [ebx + 0x1c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [ebx + 0x30]
mov eax, dword [ebx + 0x2c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 0x1e
mov ecx, edi
call fcn.004495d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x478]
add eax, 4
add ebx, 0x40
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x445093
mov ecx, dword [esi + 0x478]
sub ecx, 5
cmp eax, ecx
jne case.0x445275.3075
and eax, 0x80000007
jns 0x445199
dec eax
or eax, 0xfffffff8
inc eax
push edi
jne 0x444eff
mov eax, dword [esp + 0x14]
mov edx, eax
shl edx, 4
mov ecx, dword [edx + esi + 0x16c]
lea ebx, [edx + esi]
add eax, 0x17
push ecx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x17c]
push edi
add eax, 0x18
push edx
shl eax, 4
fld qword [eax + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [ebx + 0x18c]
mov edx, dword [esp + 0x10]
push edi
add edx, 0x19
push ecx
shl edx, 4
fld qword [edx + esi]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x1ac]
push edi
add ecx, 0x1b
shl ecx, 4
fld qword [ecx + esi]
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x19c]
add eax, 0x1a
push edi
shl eax, 4
fld qword [eax + esi]
push edx
jmp 0x445846
sub eax, 0xc03
cmp eax, 0x22
ja case.0x445275.3075
movzx edx, byte [eax + 0x445958]
jmp dword [edx*4 + 0x445940]
mov eax, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x180]
mov ecx, dword [esi + 0x17c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov edx, dword [esi + 0x18c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
mov eax, dword [esi + 0x19c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
fld qword [esi + 0x1b0]
mov ecx, dword [esi + 0x1ac]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1c0]
mov edx, dword [esi + 0x1bc]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov eax, dword [esi + 0x18c]
fchs
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [esi + 0x1cc]
fld qword [esi + 0x1d0]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
jmp 0x445846
mov edx, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x180]
mov eax, dword [esi + 0x17c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov ecx, dword [esi + 0x18c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
mov edx, dword [esi + 0x19c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1b0]
mov eax, dword [esi + 0x1ac]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1c0]
mov ecx, dword [esi + 0x1bc]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
fld qword [esi + 0x1d0]
mov edx, dword [esi + 0x1cc]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1e0]
mov eax, dword [esi + 0x1dc]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1f0]
mov ecx, dword [esi + 0x1ec]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x200]
mov edx, dword [esi + 0x1fc]
push edi
push edx
sub esp, 8
fstp qword [esp]
mov ecx, esi
call fcn.00442620
fld qword [esi + 0x210]
mov eax, dword [esi + 0x20c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x220]
mov ecx, dword [esi + 0x21c]
jmp 0x445844
mov edx, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x180]
mov eax, dword [esi + 0x17c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov ecx, dword [esi + 0x18c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
mov edx, dword [esi + 0x19c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1b0]
mov eax, dword [esi + 0x1ac]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
fld qword [esi + 0x1c0]
mov ecx, dword [esi + 0x1bc]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [0x45b118]
push edi
push 0
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1d0]
mov edx, dword [esi + 0x1cc]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1e0]
mov eax, dword [esi + 0x1dc]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
mov ecx, dword [esi + 0x1ec]
fld qword [esi + 0x1f0]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
fadd qword [esi + 0x180]
mov edx, dword [esi + 0x19c]
mov ecx, dword [esi + 0x17c]
mov eax, dword [esi + 0x1dc]
fadd qword [esi + 0x1e0]
or edx, ecx
or edx, eax
push edi
fchs
push edx
jmp 0x445846
mov eax, dword [esi + 0x16c]
fld qword [esi + 0x170]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x180]
mov ecx, dword [esi + 0x17c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x190]
mov edx, dword [esi + 0x18c]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1a0]
mov eax, dword [esi + 0x19c]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1b0]
mov ecx, dword [esi + 0x1ac]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1c0]
mov edx, dword [esi + 0x1bc]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
fld qword [esi + 0x1d0]
mov eax, dword [esi + 0x1cc]
push edi
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1e0]
mov ecx, dword [esi + 0x1dc]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x1f0]
mov edx, dword [esi + 0x1ec]
push edi
push edx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x200]
mov eax, dword [esi + 0x1fc]
push edi
push eax
sub esp, 8
fstp qword [esp]
mov ecx, esi
call fcn.00442620
fld qword [esi + 0x190]
fadd qword [esi + 0x1f0]
push edi
fadd qword [esi + 0x1d0]
fadd qword [esi + 0x1b0]
fadd qword [esi + 0x170]
fld qword [esi + 0x1c0]
fadd qword [esi + 0x1a0]
fadd qword [esi + 0x180]
fadd qword [esi + 0x200]
fadd qword [esi + 0x1e0]
fstp qword [esp + 0x2c]
fld st(0)
fabs
fld qword [esp + 0x2c]
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x445802
mov ecx, dword [esi + 0x20c]
fstp st(0)
fld qword [esi + 0x210]
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esp + 0x28]
mov ebx, dword [esi + 0x17c]
fchs
mov edx, dword [esi + 0x19c]
mov ecx, dword [esi + 0x1fc]
mov eax, dword [esi + 0x1dc]
or edx, ebx
mov ebx, dword [esi + 0x1bc]
or edx, ecx
or edx, eax
push edi
or edx, ebx
push edx
jmp 0x445846
mov edx, dword [esi + 0x1cc]
fchs
mov eax, dword [esi + 0x1ec]
mov ecx, dword [esi + 0x1ac]
mov ebx, dword [esi + 0x16c]
or eax, edx
mov edx, dword [esi + 0x18c]
or eax, ecx
or eax, ebx
or eax, edx
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
fld qword [esi + 0x210]
mov ecx, dword [esi + 0x20c]
push edi
push ecx
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00442620
push 8
mov ecx, edi
call fcn.004495d0
mov dword [esi + 0x478], 0
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x1c], edx
jl 0x444010
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x4458b9
mov edx, dword [esp + 0x24]
cmp edx, dword [edi]
mov ecx, 0x10ea
jge 0x4458b9
jmp 0x445890
mov eax, dword [edi + 4]
mov bl, byte [edx + eax]
lea esi, [edx + eax]
mov al, ch
xor al, bl
mov byte [esi], al
movzx ax, al
add eax, ecx
imul eax, eax, 0x3193
mov ecx, 0x58bf
sub ecx, eax
mov eax, dword [edi]
inc edx
cmp edx, eax
jl 0x445890
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18