Function at 0x43fb10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x533840]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x94], eax
xor eax, eax
push esi
mov esi, dword [ebp + 0x1c]
cmp ecx, 0x4fc
push edi
mov edi, edx
mov dword [ebp - 0x6c], 0x4fc
cmovg ecx, dword [ebp - 0x6c]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x78], 0xffffffff
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x7c], ecx
mov dword [ebx + 0x4728], eax
cmp dword [ebx + 0x90], eax
jne 0x43fbf4
mov ecx, dword [ebx + 0x84]
imul eax, edx, 0x190
cmp eax, ecx
je 0x43fbf1
imul eax, edx, 0xc8
cmp eax, ecx
je 0x43fbf1
imul eax, edx, 0x64
cmp eax, ecx
je 0x43fbf1
imul edx, edx, 0x32
cmp edx, ecx
je 0x43fbee
imul eax, dword [ebp - 0x68], 0x19
cmp eax, ecx
je 0x43fbee
lea eax, [ecx + ecx*2]
cmp edx, eax
jne 0x4420ce
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x7c]
imul eax, edx, 0x190
cmp eax, dword [ebx + 0x84]
jl 0x4420ce
test ecx, ecx
jle 0x4420ce
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
add eax, ebx
add edx, ebx
mov dword [ebp - 0xb8], eax
cmp dword [ebx + 0x60], 0x803
mov dword [ebp - 0x80], edx
jne 0x43fc32
mov dword [ebp - 0xc], 0
jmp 0x43fc38
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x9c]
mov ecx, dword [ebp + 0x14]
cmp ecx, eax
cmovge ecx, eax
lea eax, [ebp - 0x64]
push eax
push 0x271f
push edx
mov dword [ebp + 0x14], ecx
call fcn.0044d4a0
xor eax, eax
add esp, 0xc
cmp dword [ebx + 0x2c], 7
mov dword [ebp - 0x60], eax
jl 0x43fd60
cmp dword [ebx + 0x84], 0xbb80
jne 0x43fd60
mov eax, dword [ebx + 0x21e8]
lea ecx, [ebx + 0xac]
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 0x21ec]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xa8], ecx
test edx, edx
je 0x43fd4c
mov eax, 0x16da0
mov ebx, ecx
cmp esi, eax
mov ecx, 0x1e0
cmovle eax, esi
mov edi, dword [ebx + 0x1ae4]
mov esi, eax
mov dword [ebp - 0xb4], eax
sub esi, edi
push fcn.0043f200
push dword [ebp + 0x14]
cmp esi, 0x1e0
mov eax, esi
push dword [ebp + 0x28]
cmovg eax, ecx
mov ecx, ebx
push 0xfffffffffffffffe
push 0
push edi
push eax
push edx
mov edx, dword [ebp - 0x90]
call fcn.00445420
mov edx, dword [ebp - 0x94]
sub esi, 0x1e0
add esp, 0x20
add edi, 0x1e0
mov ecx, 0x1e0
test esi, esi
jg 0x43fcd0
mov eax, dword [ebp - 0xb4]
lea edx, [ebp - 0x60]
mov esi, dword [ebp - 0x68]
sub eax, esi
mov ecx, dword [ebp - 0xa8]
mov edi, dword [ebp - 0x9c]
mov dword [ebx + 0x1ae4], eax
mov ebx, dword [ebp - 0xa4]
push esi
call fcn.00445230
mov eax, dword [ebp - 0x60]
add esp, 4
jmp 0x43fd63
mov esi, dword [ebp - 0x68]
lea edx, [ebp - 0x60]
push esi
call fcn.00445230
mov eax, dword [ebp - 0x60]
add esp, 4
jmp 0x43fd63
mov esi, dword [ebp - 0x68]
movss xmm0, dword [0x52d6c8]
mov dword [ebx + 0x80], 0xffffffff
mov dword [ebx + 0x4724], 0
test eax, eax
je 0x43fe18
cmp dword [ebx + 0x70], 0xfffffc18
jne 0x43fdcf
subss xmm0, dword [ebp - 0x4c]
sub esp, 8
mulss xmm0, dword [0x52d88c]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x52d750]
movsd qword [ebp - 0x98], xmm0
fld qword [ebp - 0x98]
fstp qword [esp]
call fcn.004d8500
add esp, 8
call fcn.004c5130
mov dword [ebx + 0x80], eax
mov ecx, dword [ebp - 0x48]
cmp ecx, 0xc
jg 0x43fde3
mov dword [ebx + 0x4724], 0x44d
jmp 0x43fe18
cmp ecx, 0xe
jg 0x43fdf4
mov dword [ebx + 0x4724], 0x44e
jmp 0x43fe18
cmp ecx, 0x10
jg 0x43fe05
mov dword [ebx + 0x4724], 0x44f
jmp 0x43fe18
xor eax, eax
cmp ecx, 0x12
setg al
add eax, 0x450
mov dword [ebx + 0x4724], eax
cmp dword [ebx + 0x64], 2
jne 0x43fe42
cmp dword [ebx + 0x6c], 1
je 0x43fe42
lea eax, [ebx + 0x3810]
mov edx, esi
push eax
push dword [ebx + 0x84]
mov ecx, edi
call fcn.0043f7d0
add esp, 8
movaps xmm3, xmm0
jmp 0x43fe45
xorps xmm3, xmm3
push dword [ebp - 0x7c]
mov edx, esi
mov ecx, ebx
call fcn.0043e960
mov ecx, dword [ebx + 0x84]
mov edi, eax
mov eax, ecx
mov dword [ebx + 0x94], edi
cdq
add esp, 4
idiv esi
cmp dword [ebx + 0x88], 0
mov edx, eax
mov dword [ebp - 0xb4], edx
jne 0x43feca
lea eax, [ecx + ecx*2]
cdq
idiv esi
mov esi, eax
lea eax, [edi + edi*2]
cdq
and edx, 7
lea ecx, [edx + eax]
mov eax, esi
cdq
sub eax, edx
sar ecx, 3
sar eax, 1
add eax, ecx
mov ecx, dword [ebp - 0x7c]
cdq
idiv esi
cmp eax, ecx
cmovl ecx, eax
mov eax, 0x55555556
mov dword [ebp - 0x7c], ecx
imul ecx, esi
shl ecx, 3
imul ecx
mov ecx, dword [ebx + 0x84]
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [ebp - 0xb4]
mov dword [ebx + 0x94], edi
mov esi, dword [ebp - 0x7c]
cmp esi, 3
jl 0x442028
lea eax, [edx + edx*2]
shl eax, 3
cmp edi, eax
jl 0x442028
cmp edx, 0x32
jge 0x43ff05
mov eax, edx
imul eax, esi
cmp eax, 0x12c
jl 0x442028
cmp edi, 0x960
jl 0x442028
mov eax, edx
imul eax, esi
mov esi, dword [ebx + 0x64]
shl eax, 3
mov dword [ebp - 0xa8], eax
mov eax, ecx
cdq
idiv dword [ebp - 0x68]
lea ecx, [eax - 0x32]
lea eax, [esi + esi*4]
lea eax, [eax*8 + 0x14]
imul ecx, eax
mov eax, dword [ebx + 0x70]
sub edi, ecx
mov dword [ebp - 0x94], edi
cmp eax, 0xbb9
jne 0x43ff45
mov edi, 0x7f
jmp 0x43ff8f
cmp eax, 0xbba
jne 0x43ff50
xor edi, edi
jmp 0x43ff8f
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x60]
test eax, eax
js 0x43ff7c
imul edi, eax, 0x147
sar edi, 8
cmp ecx, 0x801
jne 0x43ff8f
mov eax, 0x73
cmp edi, eax
cmovl eax, edi
mov edi, eax
jmp 0x43ff8f
cmp ecx, 0x800
mov edi, 0x30
mov eax, 0x73
cmove edi, eax
mov ecx, dword [ebx + 0x6c]
mov dword [ebp - 0x90], ecx
cmp ecx, 0xfffffc18
je 0x43ffad
cmp esi, 2
jne 0x43ffad
lea edx, [ebx + 0x37d0]
jmp 0x43ffdd
lea edx, [ebx + 0x37d0]
cmp esi, 2
jne 0x43ffd5
cmp dword [edx], esi
mov ecx, 0x7918
mov eax, 0x7148
cmovne eax, ecx
xor ecx, ecx
cmp dword [ebp - 0x94], eax
setg cl
inc ecx
jmp 0x43ffd7
mov ecx, esi
mov dword [ebp - 0x90], ecx
mov dword [edx], ecx
mov esi, dword [ebx + 0x84]
mov eax, esi
cdq
idiv dword [ebp - 0x68]
mov dword [ebp - 0x74], esi
lea ecx, [eax - 0x32]
mov eax, dword [ebp - 0x90]
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x14]
imul ecx, eax
mov eax, dword [ebx + 0x94]
sub eax, ecx
cmp dword [ebx + 0x60], 0x803
mov dword [ebp - 0x90], eax
jne 0x440032
mov eax, 0x3ea
mov dword [ebx + 0x37f0], 0x3ea
mov dword [ebp - 0x70], eax
jmp 0x44013d
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], esi
cmp eax, 0xfffffc18
jne 0x440137
movss xmm2, dword [0x52d6c8]
mov edx, esi
movss xmm1, dword [0x52d8cc]
subss xmm2, xmm3
movaps xmm0, xmm1
mulss xmm0, xmm3
mulss xmm3, dword [0x52d8dc]
mulss xmm1, xmm2
mulss xmm2, dword [0x52d8e8]
addss xmm0, xmm1
addss xmm2, xmm3
cvttss2si ecx, xmm0
cvttss2si eax, xmm2
sub eax, ecx
imul eax, edi
imul eax, edi
sar eax, 0xe
add eax, ecx
cmp dword [ebx + 0x60], 0x800
cmove edx, esi
lea ecx, [eax + 0x1f40]
cmovne ecx, eax
mov eax, dword [ebx + 0x37f4]
cmp eax, 0x3ea
jne 0x4400bc
add ecx, 0xfffff060
jmp 0x4400cb
test eax, eax
jle 0x4400cb
add ecx, 0xfa0
mov dword [ebp - 0x74], edx
mov esi, edx
xor eax, eax
cmp dword [ebp - 0x90], ecx
setge al
cmp dword [ebx + 0x30], 0
lea eax, [eax*2 + 0x3e8]
mov dword [ebp - 0x70], eax
mov dword [ebx + 0x37f0], eax
je 0x440115
mov dword [ebp - 0x70], eax
mov eax, 0x80
sub eax, edi
sar eax, 4
cmp dword [ebx + 0x28], eax
jle 0x440112
mov eax, 0x3e8
mov dword [ebx + 0x37f0], 0x3e8
mov dword [ebp - 0x70], eax
jmp 0x440115
mov eax, dword [ebp - 0x70]
cmp dword [ebx + 0x34], 0
je 0x44013d
mov dword [ebp - 0x70], eax
cmp edi, 0x64
jle 0x44013d
mov eax, 0x3e8
mov dword [ebx + 0x37f0], 0x3e8
mov dword [ebp - 0x70], eax
jmp 0x44013d
mov dword [ebx + 0x37f0], eax
mov ecx, dword [ebp - 0x68]
cmp eax, 0x3ea
je 0x440170
mov dword [ebp - 0x70], eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jge 0x440170
mov dword [ebx + 0x37f0], 0x3ea
mov esi, 0x3ea
jmp 0x440173
mov esi, dword [ebp - 0x70]
cmp dword [ebx + 0xa4], 0
je 0x44018b
mov dword [ebx + 0x37f0], 0x3ea
mov esi, 0x3ea
cmp dword [ebp - 0xb4], 0x32
mov edx, 0x2ee0
mov eax, 0x1f40
cmovg eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x74]
shl ecx, 3
cdq
idiv ecx
cmp dword [ebp - 0x7c], eax
jge 0x4401bf
mov dword [ebx + 0x37f0], 0x3ea
mov esi, 0x3ea
cmp dword [ebx + 0x37d0], 1
jne 0x4401fc
cmp dword [ebx + 0x37f8], 2
jne 0x4401fc
cmp dword [ebx + 0x40], 0
jne 0x4401fc
cmp esi, 0x3ea
je 0x4401fc
cmp dword [ebx + 0x37f4], 0x3ea
je 0x4401fc
mov dword [ebx + 0x37d0], 2
mov eax, 1
jmp 0x4401fe
xor eax, eax
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx + 0x37f4]
test ecx, ecx
jle 0x440228
mov eax, dword [ebx + 0x37f0]
cmp eax, 0x3ea
je 0x44037d
cmp ecx, 0x3ea
je 0x440389
xor edx, edx
mov esi, dword [ebp - 0x68]
cmp dword [ebx + 0x3804], 0
je 0x440257
mov edx, 1
mov dword [ebx + 0x3804], 0
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xa0], edx
test edx, edx
je 0x4402ba
mov eax, 0x51eb851f
imul dword [ebx + 0x84]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
add ecx, esi
imul eax, dword [ebp - 0x7c]
cdq
idiv ecx
mov ecx, eax
mov eax, 0x101
cmp ecx, 0x101
cmovg ecx, eax
cmp dword [ebx + 0x88], 0
mov dword [ebp - 0x84], ecx
je 0x4402ba
mov eax, 0x51eb851f
imul dword [ebx + 0x94]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
cmovge ecx, eax
mov dword [ebp - 0x84], ecx
cmp dword [ebx + 0x37f0], 0x3ea
je 0x4402f7
cmp dword [ebx + 0x37f4], 0x3ea
jne 0x4402f7
mov edx, dword [ebx + 0xa8]
lea eax, [ebp - 0x138]
mov ecx, dword [ebp - 0xb8]
push eax
call fcn.00443df0
add esp, 4
mov dword [ebp - 0xa0], 1
mov eax, dword [ebx + 0x37f0]
cmp eax, 0x3ea
je 0x440317
cmp dword [ebx + 0x3808], 0
jne 0x440317
cmp dword [ebx + 0x50], 0
je 0x44052f
mov edx, dword [ebp - 0x90]
mov esi, 0x451
mov dword [ebp - 0x74], edx
cmp eax, 0x3ea
je 0x44035a
mov ecx, dword [ebx + 0x2c]
mov eax, 0x51eb851f
add ecx, 0x2d
imul ecx, edx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 0x88], 0
mov dword [ebp - 0x74], eax
jne 0x44035a
sub eax, 0x3e8
mov dword [ebp - 0x74], eax
cmp dword [ebx + 0x64], 2
jne 0x4403f4
cmp dword [ebx + 0x6c], 1
je 0x4403f4
mov edx, 0x523a38
mov eax, 0x523a8c
jmp 0x4403fe
cmp ecx, 0x3ea
je 0x440228
xor ebx, ebx
mov edx, 1
cmp eax, 0x3ea
mov dword [ebp - 0x8c], edx
setne bl
mov dword [ebp - 0xb0], ebx
mov ebx, dword [ebp - 0xa4]
jne 0x44022a
mov esi, dword [ebp - 0x68]
mov eax, 0x51eb851f
imul dword [ebx + 0x84]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jl 0x4403e7
mov edx, dword [ebp - 0x8c]
mov dword [ebx + 0x37f0], ecx
mov dword [ebp - 0xc0], 1
jmp 0x44022d
xor edx, edx
mov dword [ebp - 0x8c], edx
jmp 0x44022d
mov edx, 0x523a18
mov eax, 0x523a68
mov ecx, dword [edx]
sub ecx, dword [eax]
imul ecx, edi
mov dword [ebp - 0x70], eax
imul ecx, edi
sar ecx, 0xe
add ecx, dword [eax]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [edx + 4]
sub ecx, dword [eax + 4]
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, dword [eax + 4]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [edx + 8]
sub ecx, dword [eax + 8]
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, dword [eax + 8]
mov dword [ebp - 0xd8], ecx
mov ecx, dword [edx + 0xc]
sub ecx, dword [eax + 0xc]
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, dword [eax + 0xc]
mov dword [ebp - 0xd4], ecx
mov ecx, dword [edx + 0x10]
sub ecx, dword [eax + 0x10]
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, dword [eax + 0x10]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [edx + 0x14]
sub ecx, dword [eax + 0x14]
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, dword [eax + 0x14]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [edx + 0x18]
sub ecx, dword [eax + 0x18]
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, dword [eax + 0x18]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [edx + 0x1c]
sub ecx, dword [eax + 0x1c]
imul ecx, edi
imul ecx, edi
mov edi, dword [ebp - 0x74]
sar ecx, 0xe
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0xc4], ecx
lea ecx, [ebp - 0xc4]
nop word [eax + eax]
cmp dword [ebx + 0x3808], 0
mov eax, dword [ecx - 4]
mov edx, dword [ecx]
jne 0x4404ec
cmp dword [ebx + 0x3800], esi
jl 0x4404ea
sub eax, edx
jmp 0x4404ec
add eax, edx
cmp edi, eax
jge 0x4404fc
dec esi
sub ecx, 8
cmp esi, 0x44d
jg 0x4404d0
cmp dword [ebx + 0x3808], 0
mov dword [ebx + 0x3800], esi
jne 0x44052f
cmp dword [ebx + 0x37f0], 0x3ea
je 0x44052f
cmp dword [ebx + 0x54], 0
jne 0x44052f
cmp esi, 0x44f
jle 0x44052f
mov dword [ebx + 0x3800], 0x44f
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x3800]
cmp ecx, eax
jle 0x440544
mov dword [ebx + 0x3800], eax
mov ecx, eax
mov eax, dword [ebx + 0x74]
cmp eax, 0xfffffc18
je 0x440556
mov dword [ebx + 0x3800], eax
mov ecx, eax
mov edx, dword [ebx + 0x37f0]
mov eax, ecx
mov esi, edx
mov edi, 0x44f
cmp edx, 0x3ea
je 0x440586
cmp dword [ebp - 0xa8], 0x3a98
jge 0x440586
mov eax, edi
cmp ecx, eax
cmovl eax, ecx
mov dword [ebx + 0x3800], eax
mov edx, dword [ebx + 0x84]
mov ecx, eax
cmp edx, 0x5dc0
jg 0x4405ac
cmp eax, 0x450
jle 0x4405ac
mov dword [ebx + 0x3800], 0x450
mov ecx, 0x450
mov eax, ecx
cmp edx, 0x3e80
jg 0x4405c2
cmp ecx, edi
jle 0x4405c2
mov dword [ebx + 0x3800], edi
mov eax, edi
mov ecx, eax
cmp edx, 0x2ee0
jg 0x4405e2
cmp eax, 0x44e
jle 0x4405e2
mov dword [ebx + 0x3800], 0x44e
mov ecx, 0x44e
cmp edx, 0x1f40
jg 0x4405fc
cmp ecx, 0x44d
jle 0x4405fc
mov dword [ebx + 0x3800], 0x44d
mov edx, dword [ebx + 0x4724]
test edx, edx
je 0x440697
cmp dword [ebx + 0x74], 0xfffffc18
jne 0x440697
mov ecx, dword [ebx + 0x37d0]
mov edi, dword [ebp - 0x90]
imul eax, ecx, 0x4650
cmp edi, eax
jg 0x440640
mov esi, dword [ebx + 0x37f0]
cmp esi, 0x3ea
jne 0x440640
lea ecx, [esi + 0x63]
jmp 0x44067b
imul eax, ecx, 0x5dc0
cmp edi, eax
jg 0x440657
cmp esi, 0x3ea
jne 0x440657
lea ecx, [esi + 0x64]
jmp 0x44067b
imul eax, ecx, 0x7530
cmp edi, eax
jg 0x440668
mov ecx, 0x44f
jmp 0x44067b
imul eax, ecx, 0xabe0
xor ecx, ecx
cmp edi, eax
setg cl
add ecx, 0x450
mov eax, dword [ebx + 0x3800]
cmp edx, ecx
cmovg ecx, edx
cmp eax, ecx
mov dword [ebx + 0x4724], ecx
cmovge eax, ecx
mov dword [ebx + 0x3800], eax
push dword [ebp + 0x14]
push 0xfc4
push dword [ebp - 0x80]
call fcn.0044d4a0
mov ecx, dword [ebx + 0x37f0]
add esp, 0xc
cmp ecx, 0x3ea
jne 0x4406ce
cmp dword [ebx + 0x3800], 0x44e
jne 0x4406ce
mov dword [ebx + 0x3800], 0x44f
cmp dword [ebx + 0xa4], 0
je 0x4406e1
mov dword [ebx + 0x3800], 0x44d
mov esi, dword [ebx + 0x84]
mov eax, 0x51eb851f
mov edi, dword [ebp - 0x68]
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jle 0x440940
cmp ecx, 0x3ea
je 0x44071b
cmp dword [ebx + 0x3800], 0x44f
jle 0x440940
mov eax, dword [ebp - 0x78]
cmp eax, 0xffffffff
je 0x440732
mov dword [ebx + 0x21e8], eax
mov eax, dword [ebp - 8]
mov dword [ebx + 0x21ec], eax
mov eax, 0x51eb851f
xor ecx, ecx
imul esi
mov eax, dword [ebp + 0x10]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp edi, esi
mov dword [ebp - 0xbc], esi
setg cl
add eax, 0xfffffffd
add ecx, 2
cdq
idiv ecx
mov dword [ebp - 8], ecx
cmp eax, 0x4fc
cmovg eax, dword [ebp - 0x6c]
mov dword [ebp - 0x88], eax
imul eax, ecx
call fcn.004c5240
mov eax, 0x12c
mov dword [ebp - 0x90], esp
call fcn.004c5240
mov eax, esp
mov dword [ebp - 0x6c], eax
mov dword [eax + 4], 0
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebx + 0x40]
mov dword [ebp - 0x94], eax
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0x6c]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebx + 0x37f0]
mov dword [ebx + 0x7c], eax
mov eax, dword [ebx + 0x3800]
mov dword [ebx + 0x74], eax
mov eax, dword [ebx + 0x37d0]
mov dword [ebx + 0x6c], eax
mov dword [ebp - 0xb8], ecx
test ecx, ecx
je 0x4407de
mov dword [ebx + 0x6c], 1
jmp 0x4407e4
mov dword [ebx + 0x37f8], eax
mov eax, dword [ebp - 0x88]
xor edi, edi
nop dword [eax]
cmp dword [ebp - 0xc0], 0
mov dword [ebx + 0x40], 0
je 0x44081a
xor eax, eax
cmp dword [ebp - 0x68], esi
setg al
inc eax
cmp edi, eax
mov eax, dword [ebp - 0x88]
jne 0x44081a
mov dword [ebx + 0x7c], 0x3ea
mov esi, dword [ebx + 0x84]
push 0
push fcn.0043f200
push dword [ebp + 0x28]
mov ecx, dword [ebx + 0x64]
push 0xfffffffffffffffe
push 0
push 0
push 0
push dword [ebp + 0x14]
imul ecx, esi
push eax
push dword [ebp - 0x90]
mov eax, 0x51eb851f
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0x9c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, edi
lea edx, [ecx + eax*4]
mov ecx, ebx
call fcn.0043fb10
add esp, 0x2c
test eax, eax
js 0x442017
mov esi, dword [ebp - 0x90]
mov edx, esi
push ecx
mov ecx, dword [ebp - 0x6c]
push eax
call fcn.00447780
add esp, 8
test eax, eax
js 0x442017
mov eax, dword [ebp - 0x88]
inc edi
mov ecx, dword [ebp - 8]
add esi, eax
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0xbc]
cmp edi, ecx
jl 0x4407f0
mov edi, dword [ebx + 0x88]
test edi, edi
jne 0x4408f0
mov eax, dword [ebx + 0x94]
lea esi, [eax + eax*2]
mov eax, 0x4b0
cdq
idiv ecx
mov ecx, eax
mov eax, esi
cdq
idiv ecx
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
cmovl ecx, eax
mov dword [ebp + 0x10], ecx
mov ecx, dword [ebp - 8]
xor eax, eax
test edi, edi
sete al
push eax
mov eax, dword [ebp - 0xac]
push ecx
push dword [ebp + 0x10]
push eax
push ecx
mov ecx, dword [ebp - 0x6c]
call fcn.00447840
add esp, 0x14
test eax, eax
js 0x442017
mov ecx, dword [ebp - 0x94]
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0xa0]
mov dword [ebx + 0x74], ecx
mov ecx, dword [ebp - 0xa8]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebp - 0xb8]
mov dword [ebx + 0x40], ecx
jmp 0x4420d1
mov eax, dword [ebx + 0x3800]
mov dword [ebp - 0x74], eax
cmp ecx, 0x3e8
jne 0x440967
cmp eax, 0x44f
jle 0x440967
mov dword [ebx + 0x37f0], 0x3e9
mov ecx, 0x3e9
cmp ecx, 0x3e9
jne 0x440980
cmp eax, 0x44f
jg 0x440980
mov dword [ebx + 0x37f0], 0x3e8
mov eax, dword [ebx + 0x94]
lea ecx, [esi*8]
imul eax, edi
mov esi, dword [ebx + 0x64]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
cdq
idiv ecx
mov edx, dword [ebp - 0x7c]
mov ecx, edx
sub ecx, dword [ebp - 0x84]
cmp ecx, eax
mov dword [ebp - 0x28], 0x21
mov dword [ebp - 0x24], 0
cmovge ecx, eax
mov dword [ebp - 0x20], 0x80000000
mov eax, dword [ebp - 0xac]
dec ecx
inc eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x3c], eax
lea eax, [edx - 1]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xc]
add eax, edi
mov dword [ebp - 0x14], 0xffffffff
imul eax, esi
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0
shl eax, 2
call fcn.004c5240
mov eax, esi
mov edx, esp
imul eax, dword [ebp - 0xc]
mov dword [ebp - 0x70], edx
shl eax, 2
push eax
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebp - 0xc]
imul eax, esi
add eax, 0xe09
lea eax, [ebx + eax*4]
push eax
push edx
call fcn.004c6400
add esp, 0xc
cmp dword [ebx + 0x37f0], 0x3ea
jne 0x440ad0
mov edx, 0x3c
mov edi, 0x1f
bsr eax, edx
sub edi, eax
mov eax, 0x18
sub eax, edi
mov esi, eax
neg esi
mov dword [ebp - 0x6c], esi
test eax, eax
jne 0x440a78
mov esi, edx
jmp 0x440a99
jns 0x440a8c
mov ecx, 0x20
sub ecx, esi
mov esi, edx
shr esi, cl
mov ecx, dword [ebp - 0x6c]
shl edx, cl
jmp 0x440a97
lea ecx, [edi + 8]
mov esi, edx
shl esi, cl
mov ecx, eax
shr edx, cl
or esi, edx
and esi, 0x7f
mov edx, 0x80
sub edx, esi
imul edx, esi
movzx eax, dx
imul ecx, eax, 0xb3
sar edx, 0x10
imul eax, edx, 0xb3
sar ecx, 0x10
add eax, esi
mov esi, 0x1f
sub esi, edi
add eax, ecx
shl esi, 7
add esi, eax
shl esi, 8
jmp 0x440ad9
mov eax, dword [ebp - 0xb8]
mov esi, dword [eax + 8]
mov edx, dword [ebx + 0x37d8]
sub esi, edx
movzx eax, si
imul ecx, eax, 0x3d7
sar esi, 0x10
imul esi, esi, 0x3d7
sar ecx, 0x10
add ecx, edx
add esi, ecx
mov dword [ebx + 0x37d8], esi
sar esi, 8
test esi, esi
jns 0x440b0b
xor edx, edx
jmp 0x440b6e
cmp esi, 0xf7f
jl 0x440b1a
mov edx, 0x7fffffff
jmp 0x440b6e
mov ecx, esi
mov edx, 1
sar ecx, 7
mov eax, 0x80
shl edx, cl
mov ecx, esi
and ecx, 0x7f
sub eax, ecx
imul eax, ecx
mov dword [ebp - 0x6c], eax
movzx eax, ax
imul edi, eax, 0xffffff52
mov eax, dword [ebp - 0x6c]
sar eax, 0x10
imul eax, eax, 0xae
sar edi, 0x10
sub edi, eax
mov eax, edx
add edi, ecx
cmp esi, 0x800
jge 0x440b66
imul eax, edi
sar eax, 7
jmp 0x440b6c
sar eax, 7
imul eax, edi
add edx, eax
cmp dword [ebx + 0x60], 0x800
lea esi, [ebx + 0x37e0]
mov edi, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x84]
mov dword [ebp - 8], edi
jne 0x440bad
mov eax, dword [ebp - 0x70]
push ecx
mov ecx, dword [ebp - 0x9c]
push edi
imul edi, dword [ebp - 0xc]
push dword [ebp - 0x68]
push esi
lea eax, [eax + edi*4]
push eax
call fcn.0043e520
add esp, 0x14
jmp 0x440c6f
mov edx, dword [ebp - 0x70]
mov eax, edi
imul eax, dword [ebp - 0xc]
movss xmm3, dword [0x52d84c]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
lea edx, [edx + eax*4]
xor eax, eax
mov dword [ebp - 0x94], edx
divss xmm3, xmm0
test edi, edi
jle 0x440c6f
movss xmm4, dword [0x52d4e8]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], edx
nop dword [eax]
test ecx, ecx
jle 0x440c5e
mov edi, dword [ebp - 0x9c]
lea ecx, [ebx*4]
sub edi, dword [ebp - 0x94]
mov dword [ebp - 8], ecx
mov ecx, edx
mov edx, dword [ebp - 0x68]
nop
movss xmm2, dword [ecx + edi]
subss xmm2, dword [esi + eax*8]
movaps xmm0, xmm2
subss xmm2, dword [esi + eax*8 + 4]
mulss xmm0, xmm3
addss xmm0, dword [esi + eax*8]
addss xmm0, xmm4
movss dword [esi + eax*8], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm2
addss xmm0, dword [esi + eax*8 + 4]
addss xmm0, xmm4
movss dword [esi + eax*8 + 4], xmm0
movss dword [ecx], xmm2
add ecx, dword [ebp - 8]
sub edx, 1
jne 0x440c10
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x68]
inc eax
add edx, 4
mov dword [ebp - 0x6c], edx
cmp eax, ebx
jl 0x440bf0
mov ebx, dword [ebp - 0xa4]
movss xmm0, dword [0x52d6c8]
mov esi, dword [ebx + 0x37f0]
movss dword [ebp - 0x9c], xmm0
cmp esi, 0x3ea
je 0x4413ad
mov eax, dword [ebx + 0x64]
imul eax, dword [ebp - 0x68]
add eax, eax
call fcn.004c5240
mov edi, dword [ebp - 0x78]
imul edi, dword [ebp - 0xb4]
mov dword [ebp - 0x94], esp
shl edi, 3
cmp esi, 0x3e9
jne 0x440da8
imul eax, dword [ebp - 0x68], 0x64
mov ecx, 0x1388
mov esi, dword [ebx + 0x37d0]
mov dword [ebp - 0x6c], 0x1770
mov dword [ebp - 8], esi
cmp dword [ebx + 0x84], eax
mov eax, edi
cmove ecx, dword [ebp - 0x6c]
imul ecx, esi
sub eax, ecx
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0x74], 0x450
mov dword [ebx + 0x24], ecx
jne 0x440d03
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
jmp 0x440d0f
lea ecx, [eax + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov esi, edx
lea eax, [ebx + 0x24]
shr esi, 0x1f
lea ecx, [edi*4]
add esi, edx
add esi, dword [ebp - 0x6c]
mov dword [eax], esi
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jle 0x440d3e
mov dword [ebx + 0x24], eax
mov esi, eax
cmp dword [ebx + 0x380c], 0
jne 0x440dab
sub edi, esi
movss xmm5, dword [0x52d6c8]
cmp dword [ebp - 0x74], 0x450
mov eax, 0xe10
mov ecx, 0xbb8
cmove eax, ecx
imul eax, dword [ebp - 8]
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
divss xmm1, xmm0
movss xmm0, dword [0x52d6a8]
comiss xmm0, xmm1
jbe 0x440d9e
addss xmm1, dword [0x52d5d0]
movss dword [ebp - 0x9c], xmm1
jmp 0x440db3
movss dword [ebp - 0x9c], xmm5
jmp 0x440db3
mov dword [ebx + 0x24], edi
movss xmm5, dword [0x52d6c8]
mov eax, dword [ebx + 0x380c]
xorps xmm4, xmm4
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x440f23
cmp dword [ebx + 0x88], 0
je 0x440f23
cmp dword [ebx + 0xa4], 0
jne 0x440f23
mov eax, dword [ebx + 0x3800]
xorps xmm2, xmm2
mov edi, 0x11
cmp eax, 0x44d
jne 0x440e07
mov edi, 0xd
mov dword [ebp - 0x88], 0x1f40
jmp 0x440e27
mov dword [ebp - 0x88], 0x3e80
cmp eax, 0x44e
jne 0x440e27
mov edi, 0xf
mov dword [ebp - 0x88], 0x2ee0
mov eax, dword [ebx + 0x64]
test eax, eax
jle 0x440e88
movss xmm1, dword [0x52d950]
xor edx, edx
movss xmm3, dword [0x52d648]
mov esi, eax
mov ebx, dword [ebp - 0x6c]
lea eax, [edx + ebx]
mov ecx, edi
nop word [eax + eax]
movss xmm0, dword [eax]
minss xmm0, xmm3
comiss xmm0, xmm1
jbe 0x440e68
comiss xmm0, xmm4
jbe 0x440e6b
mulss xmm0, xmm3
jmp 0x440e6b
movaps xmm0, xmm1
add eax, 4
addss xmm2, xmm0
sub ecx, 1
jne 0x440e50
add edx, 0x54
sub esi, 1
jne 0x440e45
mov ebx, dword [ebp - 0xa4]
mov eax, dword [ebx + 0x64]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov ecx, dword [ebx + 0x24]
neg ecx
add ecx, ecx
divss xmm2, xmm0
movd xmm0, eax
mov eax, 0x55555556
cvtdq2ps xmm0, xmm0
imul ecx
mulss xmm2, xmm0
movd xmm0, dword [ebp - 0x88]
cvtdq2ps xmm0, xmm0
mov eax, dword [ebx + 0x3800]
mov edi, edx
shr edi, 0x1f
add edi, edx
addss xmm2, dword [0x52d5e0]
mulss xmm2, xmm0
cvttss2si esi, xmm2
cmp esi, edi
cmovg edi, esi
cmp eax, 0x450
je 0x440eee
cmp eax, 0x451
je 0x440eee
mov eax, dword [ebx + 0x24]
add eax, edi
jmp 0x440f04
lea ecx, [edi + edi*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [ebx + 0x24]
mov edx, 0x24
mov ecx, ebx
mov dword [ecx + edx], eax
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x84]
imul eax, edi
shl ecx, 3
cdq
idiv ecx
add dword [ebp - 0x78], eax
imul eax, dword [ebp - 0x68], 0x3e8
mov edi, dword [ebp - 0x74]
cdq
idiv dword [ebx + 0x84]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x64]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x37d0]
mov dword [ebx + 0xc], eax
cmp edi, 0x44d
jne 0x440f5c
mov dword [ebx + 0x1c], 0x1f40
mov esi, 0x1f40
jmp 0x440f7e
cmp edi, 0x44e
jne 0x440f72
mov dword [ebx + 0x1c], 0x2ee0
mov esi, 0x2ee0
jmp 0x440f7e
mov dword [ebx + 0x1c], 0x3e80
mov esi, 0x3e80
mov ecx, dword [ebx + 0x37f0]
mov eax, 0x3e80
cmp ecx, 0x3e9
mov edx, 0x1f40
cmovne eax, edx
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x14], 0x3e80
cmp ecx, 0x3e8
jne 0x441007
cmp dword [ebp - 0xb4], 0x32
mov eax, dword [ebp - 0xa8]
jle 0x440fce
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0x1f40
cmp eax, 0x32c8
jge 0x440fed
cmp esi, 0x2ee0
mov dword [ebx + 0x14], 0x2ee0
mov ecx, 0x2ee0
cmova esi, ecx
mov dword [ebx + 0x1c], esi
cmp eax, 0x2580
jge 0x441007
cmp esi, 0x1f40
mov dword [ebx + 0x14], 0x1f40
cmova esi, edx
mov dword [ebx + 0x1c], esi
mov esi, dword [ebx + 0x88]
xor eax, eax
test esi, esi
mov ecx, 0x4fb
sete al
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x84]
dec eax
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp - 0x40], eax
shl eax, 3
cmp dword [ebx + 0x37f0], 0x3e9
mov dword [ebx + 0x3c], eax
jne 0x441057
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x3c], eax
test esi, esi
jne 0x44108a
mov esi, dword [ebx + 0x24]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x84]
imul eax, esi
shl ecx, 3
cdq
idiv ecx
mov ecx, 1
shl eax, 3
mov dword [ebx + 0x3c], eax
lea eax, [esi - 0x7d0]
cmp eax, 1
cmovl eax, ecx
mov dword [ebx + 0x24], eax
cmp dword [ebp - 0xa0], 0
movss xmm2, dword [0x52d8d8]
movss xmm3, dword [0x52d98c]
movss xmm1, dword [0x52d8d4]
je 0x4411f3
mov ebx, dword [ebx + 0x84]
mov eax, 0x51eb851f
mov ecx, dword [ebp - 0xa4]
movaps xmm3, xmm5
imul ebx
movaps xmm2, xmm4
mov eax, dword [ecx + 0xa0]
sub eax, dword [ecx + 0x68]
sar edx, 7
mov esi, edx
mov dword [ebp - 8], 0
shr esi, 0x1f
add esi, edx
mov edx, dword [ecx + 0x64]
sub eax, esi
add ecx, 0x3824
imul eax, edx
push ebx
lea edi, [eax*4]
mov eax, dword [ebp - 0x64]
add ecx, edi
push dword [eax + 0x3c]
push edx
push esi
push dword [eax + 4]
mov edx, ecx
call fcn.0043e720
mov ebx, dword [ebp - 0xa4]
push edi
push 0
lea esi, [ebx + 0x3824]
push esi
call fcn.004c62a0
mov eax, dword [ebx + 0x64]
add esp, 0x20
mov edx, dword [ebx + 0xa0]
xor ecx, ecx
imul eax, edx
test eax, eax
jle 0x4411b5
movss xmm1, dword [0x52d8d4]
movss xmm2, dword [0x52d8d8]
movss xmm3, dword [0x52d98c]
mov edi, dword [ebp - 0x94]
nop dword [eax + eax]
movss xmm0, dword [esi]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp - 0xa0], xmm0
ja 0x441181
mov dword [ebp - 0xa0], 0xc7000000
jmp 0x441190
comiss xmm1, xmm0
ja 0x441190
mov dword [ebp - 0xa0], 0x46fffe00
fld dword [ebp - 0xa0]
fistp dword [ebp - 0x6c]
mov ax, word [ebp - 0x6c]
add esi, 4
mov word [edi + ecx*2], ax
inc ecx
mov eax, dword [ebx + 0x64]
mov edx, dword [ebx + 0xa0]
imul eax, edx
cmp ecx, eax
jl 0x441160
mov esi, dword [ebp - 0x94]
lea eax, [ebp - 8]
mov ecx, dword [ebp - 0xb8]
push 1
push eax
push 0
push edx
push esi
lea edx, [ebx + 8]
call fcn.00443f00
movss xmm1, dword [0x52d8d4]
add esp, 0x14
movss xmm2, dword [0x52d8d8]
movss xmm3, dword [0x52d98c]
mov edi, dword [ebp - 0x74]
jmp 0x4411f9
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebx + 0x64]
xor edx, edx
mov eax, ecx
imul eax, dword [ebp - 0x68]
test eax, eax
jle 0x44126b
mov edi, dword [ebp - 0x68]
nop dword [eax + eax]
imul ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x70]
add ecx, edx
movss xmm0, dword [eax + ecx*4]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp - 0x94], xmm0
ja 0x44123b
mov dword [ebp - 0x94], 0xc7000000
jmp 0x44124a
comiss xmm1, xmm0
ja 0x44124a
mov dword [ebp - 0x94], 0x46fffe00
fld dword [ebp - 0x94]
fistp dword [ebp - 0x6c]
mov ax, word [ebp - 0x6c]
mov word [esi + edx*2], ax
mov eax, edi
mov ecx, dword [ebx + 0x64]
inc edx
imul eax, ecx
cmp edx, eax
jl 0x441210
mov edi, dword [ebp - 0x74]
mov ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0x40]
push 0
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x68]
lea edx, [ebx + 8]
push esi
call fcn.00443f00
add esp, 0x14
mov dword [ebp - 0x88], eax
test eax, eax
jne 0x442017
mov esi, dword [ebx + 0x37f0]
cmp dword [ebp - 0x40], eax
jne 0x441347
mov dword [ebx + 0x4728], eax
mov eax, dword [ebx + 0x84]
cdq
idiv dword [ebp - 0x68]
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x40], eax
cmp ecx, 0x190
jge 0x4412d4
add ecx, ecx
inc eax
cmp ecx, 0x190
jl 0x4412c6
mov dword [ebp - 0x40], eax
cmp esi, 0x3e8
jne 0x4412ee
mov ecx, dword [ebp - 0x74]
sub al, 2
add cl, 3
shl al, 3
shl cl, 5
or cl, al
jmp 0x441325
cmp esi, 0x3ea
jne 0x441316
xor edx, edx
lea ecx, [edi - 0x44e]
test ecx, ecx
movzx eax, cl
cmovns edx, eax
or dl, 0xfc
shl dl, 2
or dl, byte [ebp - 0x40]
shl dl, 3
mov cl, dl
jmp 0x441325
mov ecx, dword [ebp - 0x74]
sub al, 2
or cl, 6
add cl, cl
or cl, al
shl cl, 3
cmp dword [ebx + 0x37d0], 2
setne al
dec al
and al, 4
or al, cl
mov ecx, dword [ebp - 0xbc]
mov byte [ecx], al
mov eax, 1
jmp 0x4420d1
cmp esi, 0x3e8
jne 0x441385
mov eax, dword [ebx + 0x4c]
cmp eax, 0x1f40
jne 0x441362
mov dword [ebp - 0x74], 0x44d
jmp 0x441385
cmp eax, 0x2ee0
jne 0x441372
mov dword [ebp - 0x74], 0x44e
jmp 0x441385
mov ecx, dword [ebp - 0x74]
cmp eax, 0x3e80
mov eax, 0x44f
cmove ecx, eax
mov dword [ebp - 0x74], ecx
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x44], eax
test eax, eax
je 0x4413ad
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0xb0], 0
mov dword [ebx + 0x3804], 1
mov ecx, dword [ebp - 0x74]
mov eax, 0x15
add ecx, 0xfffffbb3
cmp ecx, 4
ja case.0x4413c0.1105
jmp dword [ecx*4 + 0x4420e8]
mov eax, 0xd
jmp case.0x4413c0.1105
mov eax, 0x11
jmp case.0x4413c0.1105
mov eax, 0x13
mov edi, dword [ebp - 0x80]
push eax
push 0x271c
push edi
call fcn.0044d4a0
push dword [ebx + 0x37d0]
push 0x2718
push edi
call fcn.0044d4a0
push 0xffffffffffffffff
push 0xfa2
push edi
call fcn.0044d4a0
mov esi, dword [ebx + 0x37f0]
add esp, 0x24
cmp esi, 0x3e8
je 0x441592
push 0
push 0xfa6
push edi
call fcn.0044d4a0
add esp, 0xc
cmp dword [ebx + 0x48], 0
je 0x441437
xorps xmm0, xmm0
jmp 0x44143f
movss xmm0, dword [0x52d7b0]
cvttss2si eax, xmm0
push eax
push 0x2712
push edi
call fcn.0044d4a0
mov esi, dword [ebx + 0x37f0]
add esp, 0xc
cmp esi, 0x3e9
jne 0x4414b7
bsr eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
sub ecx, eax
add ecx, 6
sar ecx, 3
cmp dword [ebp - 0x8c], 0
lea edi, [ecx + 3]
cmove edi, ecx
cmp dword [ebx + 0x88], 0
je 0x4414a7
mov eax, dword [ebx + 0x24]
imul eax, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x84]
shl ecx, 3
cdq
idiv ecx
mov ecx, dword [ebp - 0x78]
sub ecx, eax
add ecx, edi
mov dword [ebp - 0x78], ecx
jmp 0x441599
mov ecx, dword [ebp - 0x78]
cmp edi, ecx
cmovg ecx, edi
mov dword [ebp - 0x78], ecx
jmp 0x441599
cmp dword [ebx + 0x88], 0
je 0x44158a
xor esi, esi
cmp dword [ebx + 0x90], 0x1392
jne 0x441540
mov edi, dword [ebx + 0x84]
mov eax, 0x51eb851f
imul edi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [ebp - 0x68], ecx
je 0x44153d
mov eax, edi
mov ecx, dword [ebx + 0x37d0]
cdq
idiv dword [ebp - 0x68]
mov edi, dword [ebp - 0x80]
mov edx, ecx
shl edx, 4
sub edx, ecx
lea esi, [eax - 0x32]
lea ecx, [edx*4 + 0x28]
imul esi, ecx
cmp dword [ebp - 0x60], 0
je 0x441540
movss xmm1, dword [ebp - 0x5c]
mulss xmm1, dword [0x52d648]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
addss xmm1, dword [0x52d6c8]
mulss xmm1, xmm0
cvttss2si esi, xmm1
jmp 0x441540
mov edi, dword [ebp - 0x80]
push 1
push 0xfa6
push edi
call fcn.0044d4a0
push dword [ebx + 0x8c]
push 0xfb4
push edi
call fcn.0044d4a0
mov eax, dword [ebx + 0x94]
add eax, esi
push eax
push 0xfa2
push edi
call fcn.0044d4a0
mov eax, dword [ebp - 0x7c]
add esp, 0x24
sub eax, dword [ebp - 0x84]
mov esi, dword [ebx + 0x37f0]
dec eax
mov dword [ebp - 0x78], eax
jmp 0x441599
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
jmp 0x441599
mov dword [ebp - 0x78], 0
mov ecx, dword [ebx + 0x64]
mov eax, 0x51eb851f
imul ecx, dword [ebx + 0x84]
imul ecx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
shl edi, 2
mov eax, edi
call fcn.004c5240
mov dword [ebp - 8], esp
cmp esi, 0x3e8
je 0x441611
mov eax, dword [ebx + 0x37f4]
cmp esi, eax
je 0x441611
test eax, eax
jle 0x441611
mov ecx, dword [ebx + 0xa0]
mov eax, 0x51eb851f
imul dword [ebx + 0x84]
push edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
sub ecx, dword [ebp - 0xc]
imul ecx, dword [ebx + 0x64]
add ecx, 0xe09
lea eax, [ebx + ecx*4]
push eax
push dword [ebp - 8]
call fcn.004c6400
add esp, 0xc
mov edx, dword [ebx + 0xa0]
lea esi, [ebx + 0x3824]
mov edi, dword [ebp - 0x68]
mov eax, edx
mov ecx, dword [ebx + 0x64]
sub eax, edi
sub eax, dword [ebp - 0xc]
imul eax, ecx
test eax, eax
jle 0x44167b
imul ecx, edi
shl eax, 2
push eax
add ecx, 0xe09
lea eax, [ebx + ecx*4]
push eax
push esi
call fcn.004c6400
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x70]
lea eax, [edi + edx]
imul eax, dword [ebx + 0x64]
shl eax, 2
push eax
mov eax, dword [ebx + 0xa0]
sub eax, edi
sub eax, edx
imul eax, dword [ebx + 0x64]
push esi
add eax, 0xe09
lea eax, [ebx + eax*4]
push eax
call fcn.004c6400
add esp, 0x18
jmp 0x4416a1
mov eax, ecx
imul eax, edx
shl eax, 2
push eax
mov eax, edi
sub eax, edx
add eax, dword [ebp - 0xc]
imul eax, ecx
mov ecx, dword [ebp - 0x70]
lea eax, [ecx + eax*4]
push eax
push esi
call fcn.004c6400
mov esi, dword [ebp - 0x70]
add esp, 0xc
movss xmm2, dword [ebx + 0x37dc]
movss xmm4, dword [0x52d6c8]
comiss xmm4, xmm2
movss xmm3, dword [ebp - 0x9c]
ja 0x4416c3
comiss xmm4, xmm3
jbe 0x4416ea
push dword [ebx + 0x84]
mov eax, dword [ebp - 0x64]
mov edx, esi
mov ecx, esi
push dword [eax + 0x3c]
push dword [ebx + 0x64]
push edi
push dword [eax + 4]
call fcn.0043e720
movss xmm4, dword [0x52d6c8]
add esp, 0x14
cmp dword [ebx + 0x37f0], 0x3e9
movss dword [ebx + 0x37dc], xmm3
jne 0x441707
cmp dword [ebx + 0x37d0], 1
jne 0x441734
mov ecx, dword [ebp - 0x90]
xor eax, eax
add ecx, 0xffff8ad0
cmovns eax, ecx
add eax, eax
cmp eax, 0x4000
jle 0x441728
mov eax, 0x4000
jmp 0x441731
xor eax, eax
test ecx, ecx
cmovns eax, ecx
add eax, eax
mov dword [ebx + 0x58], eax
cmp dword [ebx + 0x380c], 0
jne 0x441879
cmp dword [ebx + 0x64], 2
jne 0x441879
movzx edi, word [ebx + 0x37d4]
mov eax, 0x4000
cmp di, ax
jl 0x441765
cmp dword [ebx + 0x58], eax
jge 0x441879
mov eax, 0xbb80
mov ecx, dword [ebp - 0x64]
cdq
movaps xmm6, xmm4
idiv dword [ebx + 0x84]
movss xmm7, dword [0x52d648]
movaps xmm5, xmm4
mov dword [ebp - 0x6c], eax
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0x3c]
cdq
idiv dword [ebp - 0x6c]
movsx ecx, di
xor edi, edi
mov edx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x52d52c]
subss xmm6, xmm0
movd xmm0, dword [ebx + 0x58]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x52d52c]
subss xmm5, xmm0
test edx, edx
jle 0x441826
mov eax, dword [ebp - 0x6c]
mov edi, edx
lea ecx, [eax*4]
mov eax, dword [ebp - 0x70]
movss xmm1, dword [esi]
add esi, ecx
movss xmm0, dword [0x52d6c8]
movss xmm3, dword [eax]
movss xmm4, dword [eax + 4]
mulss xmm1, xmm1
subss xmm0, xmm1
movaps xmm2, xmm1
mulss xmm2, xmm5
mulss xmm0, xmm6
addss xmm2, xmm0
movaps xmm0, xmm3
subss xmm0, xmm4
mulss xmm0, xmm7
mulss xmm2, xmm0
subss xmm3, xmm2
addss xmm4, xmm2
movss dword [eax], xmm3
movss dword [eax + 4], xmm4
add eax, 8
sub edx, 1
jne 0x4417d0
mov ecx, dword [ebp - 0x68]
cmp edi, ecx
jge 0x44186e
mov eax, dword [ebp - 0x70]
sub ecx, edi
lea eax, [eax + edi*8]
nop word [eax + eax]
movss xmm2, dword [eax]
movaps xmm0, xmm2
subss xmm0, dword [eax + 4]
mulss xmm0, xmm7
mulss xmm0, xmm5
subss xmm2, xmm0
addss xmm0, dword [eax + 4]
movss dword [eax], xmm2
movss dword [eax + 4], xmm0
add eax, 8
sub ecx, 1
jne 0x441840
mov ax, word [ebx + 0x58]
mov word [ebx + 0x37d4], ax
mov edi, dword [ebx + 0x37f0]
cmp edi, 0x3ea
je 0x441c17
mov esi, dword [ebp - 0x20]
xor ecx, ecx
bsr eax, esi
cmp edi, 0x3e9
mov edx, 0x14
cmove ecx, edx
mov edx, dword [ebp - 0x28]
sub ecx, eax
mov eax, dword [ebp - 0x7c]
add ecx, 0x10
add ecx, edx
lea eax, [eax*8 - 8]
cmp ecx, eax
jg 0x441c17
cmp edi, 0x3e9
jne 0x4419e2
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
jne 0x4418ed
mov edi, dword [ebp - 0x78]
bsr eax, esi
sub edx, eax
lea eax, [edi*8]
add edx, 0x24
cmp edx, eax
jg 0x441ba2
mov esi, dword [ebp - 0x20]
mov eax, esi
shr eax, 0xc
sub esi, eax
test ecx, ecx
je 0x441900
add dword [ebp - 0x1c], esi
test ecx, ecx
mov ecx, dword [ebp - 0x18]
cmovne esi, eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x20], esi
cmp esi, 0x800000
ja 0x4419e8
mov ebx, dword [ebp - 0x14]
nop dword [eax + eax]
mov eax, dword [ebp - 0x1c]
shr eax, 0x17
mov dword [ebp - 0x94], eax
cmp eax, 0xff
je 0x4419af
sar eax, 8
mov dword [ebp - 0x6c], eax
test ebx, ebx
js 0x44196d
mov eax, dword [ebp - 0x34]
add eax, edx
cmp eax, dword [ebp - 0x38]
jb 0x441950
or eax, 0xffffffff
jmp 0x441967
mov eax, dword [ebp - 0x3c]
mov cl, byte [ebp - 0x6c]
add cl, bl
mov byte [edx + eax], cl
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x24], edx
xor eax, eax
or dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x6c]
test ecx, ecx
je 0x4419a1
dec eax
movzx ebx, al
mov eax, dword [ebp - 0x34]
add eax, edx
cmp eax, dword [ebp - 0x38]
jb 0x441984
or eax, 0xffffffff
jmp 0x441996
mov eax, dword [ebp - 0x3c]
mov byte [edx + eax], bl
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x24], edx
xor eax, eax
or dword [ebp - 0x10], eax
sub ecx, 1
mov dword [ebp - 0x18], ecx
jne 0x441975
mov eax, dword [ebp - 0x94]
movzx ebx, al
mov dword [ebp - 0x14], ebx
jmp 0x4419b3
inc ecx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
and eax, 0x7fffff
add dword [ebp - 0x28], 8
shl esi, 8
shl eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], esi
cmp esi, 0x800000
jbe 0x441920
mov ebx, dword [ebp - 0xa4]
jmp 0x4419e8
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x8c], 0
je 0x441b9f
mov esi, dword [ebp - 0x20]
mov eax, esi
mov edi, dword [ebp - 0xb0]
shr eax, 1
sub esi, eax
test edi, edi
je 0x441a0d
add dword [ebp - 0x1c], esi
test edi, edi
cmovne esi, eax
mov dword [ebp - 0x20], esi
cmp esi, 0x800000
ja 0x441ae2
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
shr eax, 0x17
mov dword [ebp - 0x94], eax
cmp eax, 0xff
je 0x441ab1
sar eax, 8
mov dword [ebp - 0x6c], eax
test ebx, ebx
js 0x441a6f
mov eax, dword [ebp - 0x34]
add eax, edx
cmp eax, dword [ebp - 0x38]
jb 0x441a52
or eax, 0xffffffff
jmp 0x441a69
mov eax, dword [ebp - 0x3c]
mov cl, byte [ebp - 0x6c]
add cl, bl
mov byte [edx + eax], cl
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x24], edx
xor eax, eax
or dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x6c]
test ecx, ecx
je 0x441aa3
dec eax
movzx ebx, al
mov eax, dword [ebp - 0x34]
add eax, edx
cmp eax, dword [ebp - 0x38]
jb 0x441a86
or eax, 0xffffffff
jmp 0x441a98
mov eax, dword [ebp - 0x3c]
mov byte [edx + eax], bl
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x24], edx
xor eax, eax
or dword [ebp - 0x10], eax
sub ecx, 1
mov dword [ebp - 0x18], ecx
jne 0x441a77
mov eax, dword [ebp - 0x94]
movzx ebx, al
mov dword [ebp - 0x14], ebx
jmp 0x441ab5
inc ecx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
and eax, 0x7fffff
add dword [ebp - 0x28], 8
shl esi, 8
shl eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], esi
cmp esi, 0x800000
jbe 0x441a22
mov ebx, dword [ebp - 0xa4]
mov edi, dword [ebx + 0x37f0]
cmp edi, 0x3e9
jne 0x441af8
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x78]
jmp 0x441b0b
mov ecx, dword [ebp - 0x28]
bsr eax, esi
sub ecx, eax
mov eax, dword [ebp - 0x7c]
add ecx, 6
sar ecx, 3
sub eax, ecx
lea ecx, [eax - 1]
mov eax, 0x51eb851f
imul dword [ebx + 0x94]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
cmovge ecx, eax
mov eax, 2
cmp ecx, eax
cmovl ecx, eax
mov eax, 0x101
cmp ecx, 0x101
cmovg ecx, eax
mov dword [ebp - 0x84], ecx
cmp edi, 0x3e9
jne 0x441c26
mov edi, 0xff
lea edx, [ecx - 2]
bsr esi, edi
inc esi
cmp esi, 8
jle 0x441c01
sub esi, 8
mov ecx, esi
shr edx, cl
shr edi, cl
lea ecx, [ebp - 0x3c]
inc edi
push edi
lea eax, [edx + 1]
push eax
call fcn.004474a0
mov eax, dword [ebp - 0x84]
mov ecx, esi
mov edx, 1
add eax, 0xfffffffe
shl edx, cl
lea ecx, [ebp - 0x3c]
dec edx
push esi
and edx, eax
call fcn.004475c0
add esp, 0xc
mov edi, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x84]
cmp dword [ebp - 0x8c], 0
jne 0x441bc3
xor ecx, ecx
mov dword [ebx + 0x3804], 0
mov dword [ebp - 0x84], ecx
mov eax, dword [ebx + 0x37f0]
xor edx, edx
cmp eax, 0x3ea
mov esi, 0x11
cmove esi, edx
cmp eax, 0x3e8
jne 0x441c2e
bsr eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
lea ecx, [ebp - 0x3c]
sub edi, eax
add edi, 6
sar edi, 3
mov dword [ebp - 0x88], edi
call fcn.00447630
mov dword [ebp - 0x78], edi
jmp 0x441c5c
lea eax, [ecx - 1]
push 0x100
push eax
lea ecx, [ebp - 0x3c]
call fcn.004474a0
add esp, 8
jmp 0x441b9f
mov dword [ebp - 0x8c], 0
jmp 0x441b9f
mov edi, dword [ebp - 0x78]
jmp 0x441ba8
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x34]
sub eax, ecx
dec eax
cmp eax, edi
push edx
cmovl edi, eax
mov eax, dword [ebp - 0x38]
sub eax, edx
mov dword [ebp - 0x78], edi
add eax, dword [ebp - 0x3c]
push eax
mov eax, edi
sub eax, edx
add eax, dword [ebp - 0x3c]
push eax
call fcn.004c6400
add esp, 0xc
mov dword [ebp - 0x38], edi
cmp dword [ebp - 0x8c], 0
jne 0x441c75
cmp dword [ebx + 0x37f0], 0x3e8
je 0x441d1f
lea eax, [ebp - 0x60]
push eax
push 0x2726
push dword [ebp - 0x80]
call fcn.0044d4a0
add esp, 0xc
cmp dword [ebp - 0x8c], 0
je 0x441d1f
cmp dword [ebp - 0xb0], 0
je 0x441d1f
push 0
push 0x271a
push dword [ebp - 0x80]
call fcn.0044d4a0
push 0
push 0xfa6
push dword [ebp - 0x80]
call fcn.0044d4a0
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x80]
add eax, edi
push 0
push dword [ebp - 0x84]
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x84]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x70]
push eax
call fcn.0044aaa0
add esp, 0x28
test eax, eax
js 0x442017
lea eax, [ebp - 0x44]
push eax
push 0xfbf
push dword [ebp - 0x80]
call fcn.0044d4a0
push 0xfbc
push dword [ebp - 0x80]
call fcn.0044d4a0
add esp, 0x14
push esi
mov esi, dword [ebp - 0x80]
push 0x271a
push esi
call fcn.0044d4a0
mov ecx, dword [ebx + 0x37f0]
add esp, 0xc
cmp ecx, 0x3e8
je 0x441dd1
mov eax, dword [ebx + 0x37f4]
cmp ecx, eax
je 0x441d94
test eax, eax
jle 0x441d94
push 0xfbc
push esi
call fcn.0044d4a0
push 0
push 2
lea eax, [ebp - 0xc]
mov ecx, esi
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x84]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 8]
push eax
call fcn.0044aaa0
push 0
push 0x2712
push esi
call fcn.0044d4a0
add esp, 0x24
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
bsr eax, esi
sub ecx, eax
lea eax, [edi*8]
dec ecx
cmp ecx, eax
jg 0x441dd4
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 0x3c]
mov ecx, dword [ebp - 0x80]
push eax
push edi
push 0
push dword [ebp - 0x68]
call fcn.0044aaa0
add esp, 0x10
mov dword [ebp - 0x88], eax
test eax, eax
js 0x442017
mov esi, dword [ebp - 0x20]
cmp dword [ebp - 0x8c], 0
je 0x441eac
cmp dword [ebp - 0xb0], 0
jne 0x441eac
mov ecx, dword [ebx + 0x84]
mov eax, 0x51eb851f
imul ecx
mov eax, 0x51eb851f
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
imul ecx
push 0xfbc
push dword [ebp - 0x80]
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
call fcn.0044d4a0
push 0
push 0x271a
push dword [ebp - 0x80]
call fcn.0044d4a0
push 0
push 0x2712
push dword [ebp - 0x80]
call fcn.0044d4a0
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0xc]
push 0
push 2
push eax
mov eax, dword [ebp - 0x68]
sub eax, esi
sub eax, edi
imul eax, dword [ebx + 0x64]
push esi
mov esi, dword [ebp - 0x70]
lea edx, [esi + eax*4]
call fcn.0044aaa0
mov eax, dword [ebp - 0xac]
add eax, dword [ebp - 0x78]
push 0
push dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x68]
sub eax, edi
imul eax, dword [ebx + 0x64]
push edi
lea edx, [esi + eax*4]
mov esi, dword [ebp - 0x80]
mov ecx, esi
call fcn.0044aaa0
add esp, 0x40
test eax, eax
js 0x442017
lea eax, [ebp - 0x44]
push eax
push 0xfbf
push esi
call fcn.0044d4a0
mov esi, dword [ebp - 0x20]
add esp, 0xc
mov eax, dword [ebx + 0x84]
xor ecx, ecx
mov edi, dword [ebp - 0x68]
cdq
idiv edi
mov edx, dword [ebx + 0x37f0]
mov dword [ebp - 0x6c], ecx
cmp eax, 0x190
jge 0x441edd
nop word [eax + eax]
add eax, eax
inc ecx
cmp eax, 0x190
jl 0x441ed0
mov dword [ebp - 0x6c], ecx
cmp edx, 0x3e8
jne 0x441ef7
mov eax, dword [ebp - 0x74]
sub cl, 2
add al, 3
shl cl, 3
shl al, 5
or cl, al
jmp 0x441f2f
cmp edx, 0x3ea
jne 0x441f20
mov ecx, dword [ebp - 0x74]
xor edx, edx
add ecx, 0xfffffbb2
movzx eax, cl
cmovns edx, eax
or dl, 0xfc
shl dl, 2
or dl, byte [ebp - 0x6c]
shl dl, 3
mov cl, dl
jmp 0x441f2f
mov eax, dword [ebp - 0x74]
sub cl, 2
or al, 6
add al, al
or cl, al
shl cl, 3
cmp dword [ebx + 0x37d0], 2
mov edx, dword [ebp - 0xbc]
setne al
dec al
and al, 4
or al, cl
mov byte [edx], al
mov eax, esi
xor eax, dword [ebp - 0x44]
cmp dword [ebp - 0xc0], 0
mov dword [ebx + 0x4728], eax
mov eax, 0x3ea
jne 0x441f66
mov eax, dword [ebx + 0x37f0]
mov dword [ebx + 0x37f4], eax
mov eax, dword [ebx + 0x37d0]
mov ecx, dword [ebp - 0x28]
mov dword [ebx + 0x37f8], eax
bsr eax, esi
mov esi, dword [ebp - 0x7c]
sub ecx, eax
mov dword [ebx + 0x37fc], edi
dec ecx
mov dword [ebx + 0x3808], 0
lea eax, [esi*8 - 8]
cmp ecx, eax
jle 0x441fb9
mov eax, dword [ebp - 0xac]
mov byte [eax], 0
mov eax, 1
mov dword [ebx + 0x4728], 0
jmp 0x441fec
cmp dword [ebx + 0x37f0], 0x3e8
mov eax, dword [ebp - 0x88]
jne 0x441fec
cmp dword [ebp - 0x8c], 0
jne 0x441fec
cmp eax, 2
jle 0x441fec
nop dword [eax]
cmp byte [edx + eax], 0
jne 0x441fec
dec eax
cmp eax, 2
jg 0x441fe0
mov ecx, dword [ebp - 0x84]
inc ecx
add eax, ecx
cmp dword [ebx + 0x88], 0
jne 0x4420d1
mov ecx, dword [ebp - 0xbc]
mov edx, eax
push esi
call fcn.00447b60
add esp, 4
test eax, eax
je 0x442021
mov eax, 0xfffffffd
jmp 0x4420d1
mov eax, esi
jmp 0x4420d1
mov eax, dword [ebx + 0x3800]
mov edi, 0x44d
mov ecx, dword [ebx + 0x37f0]
test eax, eax
cmove eax, edi
test ecx, ecx
mov edi, 0x3e8
cmove ecx, edi
cmp edx, 0x64
mov edi, 0x3ea
cmovg ecx, edi
cmp edx, 0x32
jge 0x44205d
lea ecx, [edi - 2]
jmp 0x442065
cmp ecx, 0x3e8
jne 0x442073
cmp eax, 0x44f
jle 0x442097
mov eax, 0x44f
jmp 0x442097
cmp ecx, edi
jne 0x442085
cmp eax, 0x44e
jne 0x442097
mov eax, 0x44d
jmp 0x442097
cmp ecx, 0x3e9
jne 0x442097
mov edi, 0x450
cmp eax, edi
cmovle eax, edi
push dword [ebx + 0x37d0]
push eax
call fcn.0043e490
mov ecx, dword [ebp - 0xac]
add esp, 8
mov byte [ecx], al
mov eax, 1
cmp dword [ebx + 0x88], 0
jne 0x4420d1
push esi
mov edx, eax
call fcn.00447b60
add esp, 4
test eax, eax
cmove eax, esi
jmp 0x4420d1
or eax, 0xffffffff
lea esp, [ebp - 0x144]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c43a7
mov esp, ebp
pop ebp
ret