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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x1e94008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x9c], edx
mov ebx, ecx
mov dword [ebp - 0xb4], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x10]
xor esi, esi
mov edx, 0x4fc
mov dword [ebp - 0x8c], eax
or eax, 0xffffffff
mov dword [ebp - 0x88], esi
cmp ecx, edx
mov dword [ebp - 0x84], esi
mov edi, dword [ebp + 0x18]
cmovg ecx, edx
cmp dword [ebx + 0x90], esi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x14], esi
mov dword [ebx + 0x4728], esi
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x70], ecx
jne 0x1d7853c
mov ecx, dword [ebx + 0x84]
imul eax, esi, 0x190
cmp eax, ecx
je 0x1d78539
imul eax, esi, 0xc8
cmp eax, ecx
je 0x1d78539
imul eax, esi, 0x64
cmp eax, ecx
je 0x1d78539
imul edx, esi, 0x32
cmp edx, ecx
je 0x1d78539
imul eax, esi, 0x19
cmp eax, ecx
je 0x1d78539
lea eax, [ecx + ecx*2]
cmp edx, eax
jne 0x1d7a3d7
mov ecx, dword [ebp - 0x70]
imul eax, esi, 0x190
cmp eax, dword [ebx + 0x84]
jl 0x1d7a3d7
test ecx, ecx
jle 0x1d7a3d7
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
add eax, ebx
add edx, ebx
mov dword [ebp - 0xb0], eax
cmp dword [ebx + 0x60], 0x803
mov dword [ebp - 0x78], edx
jne 0x1d7857a
mov dword [ebp - 8], 0
jmp 0x1d78580
mov eax, dword [ebx + 0x68]
mov dword [ebp - 8], 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.01d84990
xor eax, eax
add esp, 0xc
cmp dword [ebx + 0x2c], 7
mov dword [ebp - 0x60], eax
jl 0x1d78603
cmp dword [ebx + 0x84], 0xbb80
jne 0x1d78603
mov eax, dword [ebx + 0x21e8]
lea ecx, [ebx + 0xac]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebx + 0x21ec]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x8c]
push dword [ebp + 0x14]
push 0xbb80
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x1c]
push edi
call fcn.01d7ecd0
mov eax, dword [ebp - 0x60]
add esp, 0x28
movss xmm0, dword [0x1e7df40]
mov dword [ebx + 0x80], 0xffffffff
mov dword [ebx + 0x4724], 0
test eax, eax
je 0x1d786b2
cmp dword [ebx + 0x70], 0xfffffc18
jne 0x1d78669
subss xmm0, dword [ebp - 0x4c]
sub esp, 8
mulss xmm0, dword [0x1e7e33c]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1e7e078]
movsd qword [ebp - 0x10], xmm0
fld qword [ebp - 0x10]
fstp qword [esp]
call fcn.01e2cd10
add esp, 8
call fcn.01e27a50
mov dword [ebx + 0x80], eax
mov ecx, dword [ebp - 0x48]
cmp ecx, 0xc
jg 0x1d7867d
mov dword [ebx + 0x4724], 0x44d
jmp 0x1d786b2
cmp ecx, 0xe
jg 0x1d7868e
mov dword [ebx + 0x4724], 0x44e
jmp 0x1d786b2
cmp ecx, 0x10
jg 0x1d7869f
mov dword [ebx + 0x4724], 0x44f
jmp 0x1d786b2
xor eax, eax
cmp ecx, 0x12
setg al
add eax, 0x450
mov dword [ebx + 0x4724], eax
cmp dword [ebx + 0x64], 2
xorps xmm0, xmm0
jne 0x1d786de
cmp dword [ebx + 0x6c], 1
je 0x1d786de
mov ecx, dword [ebp - 0x9c]
lea eax, [ebx + 0x3810]
push eax
push dword [ebx + 0x84]
mov edx, esi
call fcn.01d78180
add esp, 8
push dword [ebp - 0x70]
mov edx, esi
mov ecx, ebx
movaps xmm4, xmm0
call fcn.01d772e0
mov esi, dword [ebx + 0x84]
mov ecx, eax
mov edi, dword [ebp - 0x68]
mov eax, esi
cdq
add esp, 4
idiv edi
cmp dword [ebx + 0x88], 0
mov dword [ebx + 0x94], ecx
mov dword [ebp - 0x98], eax
jne 0x1d7875f
lea eax, [esi + esi*2]
cdq
idiv edi
mov edi, dword [ebp - 0x70]
mov esi, eax
lea eax, [ecx + ecx*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
cdq
idiv esi
cmp eax, edi
cmovl edi, eax
mov eax, 0x55555556
mov ecx, edi
mov dword [ebp - 0x70], edi
imul ecx, esi
shl ecx, 3
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x94], eax
jmp 0x1d78762
mov edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x98]
cmp edi, 3
jl 0x1d7a32f
mov edx, dword [ebx + 0x94]
lea eax, [esi + esi*2]
shl eax, 3
cmp edx, eax
jl 0x1d7a32f
cmp esi, 0x32
jge 0x1d787a6
mov eax, esi
imul eax, edi
cmp eax, 0x12c
jl 0x1d7a32f
cmp edx, 0x960
jl 0x1d7a32f
mov ecx, dword [ebx + 0x64]
mov eax, esi
imul eax, edi
add esi, 0xffffffce
shl eax, 3
mov dword [ebp - 0xac], eax
lea eax, [ecx + ecx*4]
lea eax, [eax*8 + 0x14]
imul eax, esi
sub edx, eax
mov eax, dword [ebx + 0x70]
cmp eax, 0xbb9
jne 0x1d787da
mov edi, 0x7f
jmp 0x1d78823
cmp eax, 0xbba
jne 0x1d787e5
xor edi, edi
jmp 0x1d78823
mov eax, dword [ebx + 0x80]
test eax, eax
js 0x1d7880f
imul edi, eax, 0x147
sar edi, 8
cmp dword [ebx + 0x60], 0x801
jne 0x1d78823
mov eax, 0x73
cmp edi, eax
cmovl eax, edi
mov edi, eax
jmp 0x1d78823
cmp dword [ebx + 0x60], 0x800
mov edi, 0x30
mov eax, 0x73
cmove edi, eax
mov eax, dword [ebx + 0x6c]
cmp eax, 0xfffffc18
je 0x1d7883a
cmp ecx, 2
jne 0x1d78863
mov dword [ebx + 0x37d0], eax
jmp 0x1d78869
cmp ecx, 2
jne 0x1d78863
cmp dword [ebx + 0x37d0], 2
mov eax, 0x7918
mov ecx, 0x7148
cmovne ecx, eax
xor eax, eax
cmp edx, ecx
setg al
inc eax
mov dword [ebx + 0x37d0], eax
jmp 0x1d78869
mov dword [ebx + 0x37d0], ecx
mov eax, dword [ebx + 0x37d0]
mov edx, dword [ebx + 0x60]
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x14]
imul eax, esi
mov esi, dword [ebx + 0x94]
sub esi, eax
mov dword [ebp - 0xa0], esi
cmp edx, 0x803
jne 0x1d788a4
mov dword [ebx + 0x37f0], 0x3ea
jmp 0x1d7897f
mov eax, dword [ebx + 0x7c]
cmp eax, 0xfffffc18
jne 0x1d78979
movss xmm3, dword [0x1e7df40]
movaps xmm0, xmm4
mulss xmm0, dword [0x1e7e394]
subss xmm3, xmm4
mulss xmm4, dword [0x1e7e3b4]
movaps xmm2, xmm3
mulss xmm3, dword [0x1e7e3c0]
mulss xmm2, dword [0x1e7e394]
addss xmm3, xmm4
addss xmm2, xmm0
cvttss2si eax, xmm3
cvttss2si ecx, xmm2
sub eax, ecx
imul eax, edi
imul eax, edi
sar eax, 0xe
add eax, ecx
cmp edx, 0x800
lea ecx, [eax + 0x1f40]
cmovne ecx, eax
mov eax, dword [ebx + 0x37f4]
cmp eax, 0x3ea
jne 0x1d78925
add ecx, 0xfffff060
jmp 0x1d7892f
test eax, eax
jle 0x1d7892f
add ecx, 0xfa0
xor eax, eax
cmp esi, ecx
setge al
cmp dword [ebx + 0x30], 0
lea eax, [eax*2 + 0x3e8]
mov dword [ebx + 0x37f0], eax
je 0x1d78962
mov eax, 0x80
sub eax, edi
sar eax, 4
cmp dword [ebx + 0x28], eax
jle 0x1d78962
mov dword [ebx + 0x37f0], 0x3e8
cmp dword [ebx + 0x34], 0
je 0x1d7897f
cmp edi, 0x64
jle 0x1d7897f
mov dword [ebx + 0x37f0], 0x3e8
jmp 0x1d7897f
mov dword [ebx + 0x37f0], eax
cmp dword [ebx + 0x37f0], 0x3ea
mov ecx, dword [ebx + 0x84]
je 0x1d789b5
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x68]
cmp edx, eax
jge 0x1d789b8
mov dword [ebx + 0x37f0], 0x3ea
jmp 0x1d789b8
mov edx, dword [ebp - 0x68]
cmp dword [ebx + 0xa4], 0
je 0x1d789cb
mov dword [ebx + 0x37f0], 0x3ea
cmp dword [ebp - 0x98], 0x32
mov eax, 0x1f40
mov esi, 0x2ee0
cmovg eax, esi
shl ecx, 3
imul eax, edx
cdq
idiv ecx
cmp dword [ebp - 0x70], eax
jge 0x1d789f7
mov dword [ebx + 0x37f0], 0x3ea
cmp dword [ebx + 0x37d0], 1
jne 0x1d78a3a
cmp dword [ebx + 0x37f8], 2
jne 0x1d78a3a
cmp dword [ebx + 0x40], 0
jne 0x1d78a3a
cmp dword [ebx + 0x37f0], 0x3ea
je 0x1d78a3a
cmp dword [ebx + 0x37f4], 0x3ea
je 0x1d78a3a
mov dword [ebx + 0x40], 1
mov dword [ebx + 0x37d0], 2
jmp 0x1d78a41
mov dword [ebx + 0x40], 0
mov esi, dword [ebx + 0x37f4]
test esi, esi
jle 0x1d78ac6
mov eax, dword [ebx + 0x37f0]
cmp eax, 0x3ea
je 0x1d78a67
cmp esi, 0x3ea
je 0x1d78a6f
cmp eax, 0x3ea
jne 0x1d78ac6
cmp esi, 0x3ea
je 0x1d78ac6
xor ecx, ecx
mov edx, 1
cmp eax, 0x3ea
mov dword [ebp - 0x80], edx
setne cl
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebx + 0x84]
cmp eax, 0x3ea
jne 0x1d78ace
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x68], eax
jl 0x1d78abf
mov edx, dword [ebp - 0x80]
mov dword [ebx + 0x37f0], esi
mov dword [ebp - 0xb8], 1
jmp 0x1d78ace
xor edx, edx
mov dword [ebp - 0x80], edx
jmp 0x1d78ace
mov ecx, dword [ebx + 0x84]
xor edx, edx
cmp dword [ebx + 0x3804], 0
je 0x1d78afe
mov dword [ebp - 0x80], 1
mov dword [ebp - 0xa4], 1
mov dword [ebx + 0x3804], 0
mov dword [ebp - 0x84], 1
jmp 0x1d78b02
test edx, edx
je 0x1d78b58
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0x68]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
imul eax, dword [ebp - 0x70]
cdq
idiv ecx
mov ecx, eax
mov eax, 0x101
cmp ecx, 0x101
cmovg ecx, eax
cmp dword [ebx + 0x88], 0
mov dword [ebp - 0x74], ecx
je 0x1d78b58
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 - 0x74], ecx
cmp dword [ebx + 0x37f0], 0x3ea
je 0x1d78b91
cmp esi, 0x3ea
jne 0x1d78b91
mov edx, dword [ebx + 0xa8]
lea eax, [ebp - 0x130]
mov ecx, dword [ebp - 0xb0]
push eax
call fcn.01d7bd10
add esp, 4
mov dword [ebp - 0x84], 1
mov ecx, dword [ebx + 0x37f0]
cmp ecx, 0x3ea
je 0x1d78bb2
cmp dword [ebx + 0x3808], 0
jne 0x1d78bb2
cmp dword [ebx + 0x50], 0
je 0x1d78d78
mov eax, dword [ebp - 0xa0]
mov esi, 0x451
mov dword [ebp - 0x94], eax
cmp ecx, 0x3ea
je 0x1d78bff
mov ecx, dword [ebx + 0x2c]
add ecx, 0x2d
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 0x88], 0
mov dword [ebp - 0x94], eax
jne 0x1d78bff
sub eax, 0x3e8
mov dword [ebp - 0x94], eax
cmp dword [ebx + 0x64], 2
jne 0x1d78c17
cmp dword [ebx + 0x6c], 1
je 0x1d78c17
mov edx, 0x1e5b728
mov eax, 0x1e5b778
jmp 0x1d78c21
mov edx, 0x1e5b708
mov eax, 0x1e5b758
mov ecx, dword [edx]
mov dword [ebp - 0x6c], eax
mov eax, dword [eax]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xd8], ecx
mov ecx, dword [edx + 4]
mov eax, dword [eax + 4]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xd4], ecx
mov ecx, dword [edx + 8]
mov eax, dword [eax + 8]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [edx + 0xc]
mov eax, dword [eax + 0xc]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [edx + 0x10]
mov eax, dword [eax + 0x10]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0x14]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xc4], ecx
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x18]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xc0], ecx
mov ecx, dword [edx + 0x1c]
lea edx, [ebp - 0xbc]
mov eax, dword [eax + 0x1c]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0xbc], ecx
nop dword [eax + eax]
cmp dword [ebx + 0x3808], 0
mov ecx, dword [edx - 4]
mov edi, dword [edx]
jne 0x1d78d33
mov eax, ecx
add ecx, edi
sub eax, edi
cmp dword [ebx + 0x3800], esi
cmovge ecx, eax
mov eax, dword [ebp - 0x94]
cmp eax, ecx
jge 0x1d78d43
dec esi
sub edx, 8
cmp esi, 0x44d
jg 0x1d78d10
cmp dword [ebx + 0x3808], 0
mov ecx, dword [ebx + 0x37f0]
mov dword [ebx + 0x3800], esi
jne 0x1d78d78
cmp ecx, 0x3ea
je 0x1d78d78
cmp dword [ebx + 0x54], 0
jne 0x1d78d78
cmp esi, 0x44f
jle 0x1d78d78
mov dword [ebx + 0x3800], 0x44f
mov eax, dword [ebx + 0x78]
cmp dword [ebx + 0x3800], eax
jle 0x1d78d89
mov dword [ebx + 0x3800], eax
mov esi, dword [ebx + 0x74]
cmp esi, 0xfffffc18
je 0x1d78d9a
mov dword [ebx + 0x3800], esi
mov edx, 0x44f
cmp ecx, 0x3ea
je 0x1d78dc6
cmp dword [ebp - 0xac], 0x3a98
jge 0x1d78dc6
mov eax, dword [ebx + 0x3800]
mov ecx, edx
cmp eax, edx
cmovl ecx, eax
mov dword [ebx + 0x3800], ecx
mov eax, dword [ebx + 0x84]
cmp eax, 0x5dc0
jg 0x1d78de9
cmp dword [ebx + 0x3800], 0x450
jle 0x1d78de9
mov dword [ebx + 0x3800], 0x450
cmp eax, 0x3e80
jg 0x1d78dfe
cmp dword [ebx + 0x3800], edx
jle 0x1d78dfe
mov dword [ebx + 0x3800], edx
cmp eax, 0x2ee0
jg 0x1d78e1b
cmp dword [ebx + 0x3800], 0x44e
jle 0x1d78e1b
mov dword [ebx + 0x3800], 0x44e
cmp eax, 0x1f40
jg 0x1d78e38
cmp dword [ebx + 0x3800], 0x44d
jle 0x1d78e38
mov dword [ebx + 0x3800], 0x44d
mov edx, dword [ebx + 0x4724]
test edx, edx
je 0x1d78ed2
cmp esi, 0xfffffc18
jne 0x1d78ed2
mov ecx, dword [ebx + 0x37d0]
mov edi, dword [ebp - 0xa0]
mov esi, dword [ebx + 0x37f0]
imul eax, ecx, 0x4650
cmp edi, eax
jg 0x1d78e7b
cmp esi, 0x3ea
jne 0x1d78e7b
lea ecx, [esi + 0x63]
jmp 0x1d78eb6
imul eax, ecx, 0x5dc0
cmp edi, eax
jg 0x1d78e92
cmp esi, 0x3ea
jne 0x1d78e92
lea ecx, [esi + 0x64]
jmp 0x1d78eb6
imul eax, ecx, 0x7530
cmp edi, eax
jg 0x1d78ea3
mov ecx, 0x44f
jmp 0x1d78eb6
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
cmovl ecx, eax
mov dword [ebx + 0x3800], ecx
push dword [ebp + 0x14]
push 0xfc4
push dword [ebp - 0x78]
call fcn.01d84990
mov ecx, dword [ebx + 0x37f0]
add esp, 0xc
cmp ecx, 0x3ea
jne 0x1d78f09
cmp dword [ebx + 0x3800], 0x44e
jne 0x1d78f09
mov dword [ebx + 0x3800], 0x44f
cmp dword [ebx + 0xa4], 0
je 0x1d78f1c
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 0x1d79195
cmp ecx, 0x3ea
je 0x1d78f56
cmp dword [ebx + 0x3800], 0x44f
jle 0x1d79195
mov eax, dword [ebp - 0x7c]
cmp eax, 0xffffffff
je 0x1d78f70
mov dword [ebx + 0x21e8], eax
mov eax, dword [ebp - 0xa8]
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 - 0xa0], esi
setg cl
add eax, 0xfffffffd
add ecx, 2
cdq
idiv ecx
mov edx, 0x4fc
mov dword [ebp - 0x84], ecx
cmp eax, 0x4fc
cmovg eax, edx
mov dword [ebp - 0x98], eax
imul eax, ecx
call fcn.01e277a0
mov eax, 0x12c
mov dword [ebp - 0x74], esp
call fcn.01e277a0
mov eax, esp
mov dword [ebp - 0xa8], eax
mov dword [eax + 4], 0
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebx + 0x40]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0xac], eax
mov eax, dword [ebx + 0x6c]
mov dword [ebp - 0x88], 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 - 0xa4], ecx
test ecx, ecx
je 0x1d7902b
mov eax, dword [ebp - 0x98]
xor edi, edi
mov dword [ebx + 0x6c], 1
jmp 0x1d79046
mov dword [ebx + 0x37f8], eax
xor edi, edi
mov eax, dword [ebp - 0x98]
jmp 0x1d79046
mov esi, dword [ebp - 0xa0]
cmp dword [ebp - 0xb8], 0
mov dword [ebx + 0x40], 0
je 0x1d79070
xor eax, eax
cmp dword [ebp - 0x68], esi
setg al
inc eax
cmp edi, eax
mov eax, dword [ebp - 0x98]
jne 0x1d79070
mov dword [ebx + 0x7c], 0x3ea
push dword [ebp + 0x30]
mov esi, dword [ebx + 0x84]
push dword [ebp - 0x8c]
mov ecx, dword [ebx + 0x64]
push dword [ebp + 0x28]
imul ecx, esi
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push 0
push 0
push dword [ebp + 0x14]
push eax
push dword [ebp - 0x74]
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.01d78470
add esp, 0x2c
test eax, eax
js 0x1d7918b
mov esi, dword [ebp - 0x74]
mov edx, esi
push ecx
mov ecx, dword [ebp - 0xa8]
push eax
call fcn.01d7f270
add esp, 8
test eax, eax
js 0x1d7918b
mov eax, dword [ebp - 0x98]
inc edi
add esi, eax
mov dword [ebp - 0x74], esi
mov esi, dword [ebp - 0x84]
cmp edi, esi
jl 0x1d79040
mov edi, dword [ebx + 0x88]
test edi, edi
je 0x1d79120
mov ecx, dword [ebp + 0x10]
jmp 0x1d7913e
mov eax, 0x4b0
cdq
idiv esi
mov ecx, eax
mov eax, dword [ebx + 0x94]
lea eax, [eax + eax*2]
cdq
idiv ecx
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test edi, edi
sete al
push eax
push ecx
push ecx
mov ecx, dword [ebp - 0x90]
push ecx
mov ecx, dword [ebp - 0xa8]
push esi
call fcn.01d7f340
add esp, 0x14
test eax, eax
js 0x1d7918b
mov ecx, dword [ebp - 0xb0]
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0xac]
mov dword [ebx + 0x74], ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebp - 0xa4]
mov dword [ebx + 0x40], ecx
jmp 0x1d7a3da
mov eax, 0xfffffffd
jmp 0x1d7a3da
mov eax, dword [ebx + 0x3800]
mov dword [ebp - 0x6c], eax
cmp ecx, 0x3e8
jne 0x1d791b7
cmp eax, 0x44f
jle 0x1d791b7
mov dword [ebx + 0x37f0], 0x3e9
cmp dword [ebx + 0x37f0], 0x3e9
jne 0x1d791d4
cmp eax, 0x44f
jg 0x1d791d4
mov dword [ebx + 0x37f0], 0x3e8
mov eax, dword [ebx + 0x94]
lea ecx, [esi*8]
imul eax, edi
cdq
idiv ecx
mov edx, dword [ebp - 0x70]
mov ecx, edx
sub ecx, dword [ebp - 0x74]
cmp ecx, eax
mov dword [ebp - 0xa8], ecx
cmovl eax, ecx
mov ecx, dword [ebp - 0x90]
dec eax
inc ecx
mov dword [ebp - 0x94], eax
lea eax, [edx - 1]
mov edx, ecx
mov dword [ebp - 0x90], ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.01d7ee60
mov eax, dword [ebp - 8]
add esp, 4
mov esi, dword [ebx + 0x64]
add eax, edi
imul eax, esi
shl eax, 2
call fcn.01e277a0
mov eax, esi
mov ecx, esp
imul eax, dword [ebp - 8]
mov dword [ebp - 0x7c], ecx
shl eax, 2
push eax
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebp - 8]
imul eax, esi
add eax, 0xe09
lea eax, [ebx + eax*4]
push eax
push ecx
call fcn.01e27b10
add esp, 0xc
cmp dword [ebx + 0x37f0], 0x3ea
jne 0x1d7927c
mov ecx, 0x3c
call fcn.01d84cd0
mov esi, eax
shl esi, 8
jmp 0x1d79285
mov eax, dword [ebp - 0xb0]
mov esi, dword [eax + 8]
mov edx, dword [ebx + 0x37d8]
lea edi, [ebx + 0x37e0]
push dword [ebx + 0x84]
sub esi, edx
movzx eax, si
imul ecx, eax, 0x3d7
sar esi, 0x10
imul eax, esi, 0x3d7
mov esi, dword [ebp - 0x68]
sar ecx, 0x10
add ecx, edx
add ecx, eax
mov eax, dword [ebx + 0x64]
push eax
imul eax, dword [ebp - 8]
cmp dword [ebx + 0x60], 0x800
push esi
mov dword [ebx + 0x37d8], ecx
push edi
jne 0x1d792ec
mov edx, dword [ebp - 0x7c]
sar ecx, 8
lea eax, [edx + eax*4]
push eax
call fcn.01d7f6f0
mov ecx, dword [ebp - 0x9c]
mov edx, eax
call fcn.01d76cb0
jmp 0x1d792fe
mov ecx, dword [ebp - 0x7c]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0x9c]
push eax
call fcn.01d76ec0
add esp, 0x14
cmp dword [ebp + 0x30], 0
je 0x1d7937c
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebp - 0x7c]
imul esi, eax
imul eax, dword [ebp - 8]
push esi
lea eax, [ecx + eax*4]
mov edx, eax
mov dword [ebp - 0x8c], eax
mov ecx, eax
call fcn.01d768f0
movss xmm1, dword [0x1e7e3e4]
add esp, 4
comiss xmm1, xmm0
jbe 0x1d79340
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jnp 0x1d7937c
lea eax, [esi*4]
push eax
push 0
push dword [ebp - 0x8c]
call fcn.01e05050
add esp, 0xc
mov dword [ebx + 0x37ec], 0
mov dword [ebx + 0x37e8], 0
mov dword [ebx + 0x37e4], 0
mov dword [edi], 0
cmp dword [ebx + 0x37f0], 0x3ea
movss xmm0, dword [0x1e7df40]
mov edi, dword [ebp - 0x68]
movss dword [ebp - 0x74], xmm0
je 0x1d79a45
mov ecx, dword [ebx + 0x64]
mov eax, edi
imul eax, ecx
mov dword [ebp - 0xc], ecx
add eax, eax
call fcn.01e277a0
mov esi, dword [ebp - 0x94]
imul esi, dword [ebp - 0x98]
mov dword [ebp - 0x9c], esp
shl esi, 3
cmp dword [ebx + 0x37f0], 0x3e9
jne 0x1d794af
imul eax, edi, 0x64
mov ecx, 0x1770
mov edi, 0x1388
cmp dword [ebx + 0x84], eax
cmove edi, ecx
imul edi, dword [ebx + 0x37d0]
cmp dword [ebp - 0x6c], 0x450
mov dword [ebx + 0x24], edi
jne 0x1d7940c
mov ecx, esi
mov eax, 0x55555556
sub ecx, edi
add ecx, ecx
imul ecx
jmp 0x1d7941c
mov eax, esi
sub eax, edi
lea ecx, [eax + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
lea ecx, [esi*4]
shr eax, 0x1f
add eax, edx
add eax, edi
mov dword [ebx + 0x24], eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 0x24], eax
jle 0x1d79447
mov dword [ebx + 0x24], eax
cmp dword [ebx + 0x380c], 0
jne 0x1d794b2
sub esi, dword [ebx + 0x24]
mov eax, 0xe10
cmp dword [ebp - 0x6c], 0x450
mov edx, 0xbb8
movss xmm5, dword [0x1e7df40]
cmove eax, edx
imul eax, dword [ebx + 0x37d0]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
divss xmm1, xmm0
movss xmm0, dword [0x1e7dee8]
comiss xmm0, xmm1
jbe 0x1d794a8
addss xmm1, dword [0x1e7dde0]
movss dword [ebp - 0x74], xmm1
jmp 0x1d794ba
movss dword [ebp - 0x74], xmm5
jmp 0x1d794ba
mov dword [ebx + 0x24], esi
movss xmm5, dword [0x1e7df40]
mov eax, dword [ebx + 0x380c]
xorps xmm4, xmm4
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x1d7962e
cmp dword [ebx + 0x88], 0
je 0x1d7962e
cmp dword [ebx + 0xa4], 0
jne 0x1d7962e
mov eax, dword [ebx + 0x3800]
movaps xmm2, xmm4
mov edi, 0x11
cmp eax, 0x44d
jne 0x1d79511
mov edi, 0xd
mov dword [ebp - 0x88], 0x1f40
jmp 0x1d79531
mov dword [ebp - 0x88], 0x3e80
cmp eax, 0x44e
jne 0x1d79531
mov edi, 0xf
mov dword [ebp - 0x88], 0x2ee0
mov eax, dword [ebx + 0x64]
test eax, eax
jle 0x1d79598
movss xmm1, dword [0x1e7e498]
xor edx, edx
movss xmm3, dword [0x1e7de6c]
mov esi, eax
mov ebx, dword [ebp - 0x8c]
lea eax, [ebx + edx]
mov ecx, edi
nop word [eax + eax]
movss xmm0, dword [eax]
minss xmm0, xmm3
comiss xmm0, xmm1
jbe 0x1d79578
comiss xmm0, xmm4
jbe 0x1d7957b
mulss xmm0, xmm3
jmp 0x1d7957b
movaps xmm0, xmm1
add eax, 4
addss xmm2, xmm0
sub ecx, 1
jne 0x1d79560
add edx, 0x54
sub esi, 1
jne 0x1d79552
mov ebx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xc]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov edi, dword [ebx + 0x24]
mov ecx, edi
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, edx
shr eax, 0x1f
add eax, edx
addss xmm2, dword [0x1e7ddf4]
mulss xmm2, xmm0
cvttss2si esi, xmm2
cmp esi, eax
cmovle esi, eax
mov eax, dword [ebx + 0x3800]
cmp eax, 0x450
je 0x1d795fe
cmp eax, 0x451
je 0x1d795fe
lea eax, [edi + esi]
jmp 0x1d79613
lea ecx, [esi + esi*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
mov ecx, dword [ebx + 0x84]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x68]
imul eax, esi
shl ecx, 3
cdq
idiv ecx
add dword [ebp - 0x94], eax
imul eax, dword [ebp - 0x68], 0x3e8
lea esi, [ebx + 8]
mov edi, dword [ebx + 0x84]
cdq
idiv edi
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x64]
mov dword [esi], eax
mov eax, dword [ebx + 0x37d0]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x6c]
cmp eax, 0x44d
jne 0x1d79665
mov dword [ebx + 0x1c], 0x1f40
jmp 0x1d7967c
cmp eax, 0x44e
jne 0x1d79675
mov dword [ebx + 0x1c], 0x2ee0
jmp 0x1d7967c
mov dword [ebx + 0x1c], 0x3e80
mov ecx, dword [ebx + 0x37f0]
mov edx, 0x3e80
cmp ecx, 0x3e9
mov dword [ebx + 0x14], edx
mov eax, 0x1f40
cmove eax, edx
mov dword [ebx + 0x18], eax
cmp ecx, 0x3e8
jne 0x1d79717
cmp dword [ebp - 0x98], 0x32
mov eax, dword [ebp - 0xac]
jle 0x1d796cf
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov ecx, dword [ebx + 0x37f0]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xac], eax
cmp eax, 0x32c8
jge 0x1d796f6
mov eax, dword [ebx + 0x1c]
mov edx, 0x2ee0
cmp eax, 0x2ee0
mov dword [ebx + 0x14], 0x2ee0
cmovg eax, edx
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xac]
cmp eax, 0x2580
jge 0x1d79717
mov eax, dword [ebx + 0x1c]
mov edx, 0x1f40
cmp eax, 0x1f40
mov dword [ebx + 0x14], 0x1f40
cmovg eax, edx
mov dword [ebx + 0x1c], eax
xor eax, eax
mov edx, 0x4fb
cmp dword [ebx + 0x88], eax
sete al
mov dword [ebp - 0xc], eax
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0xa8]
dec eax
cmp eax, edx
cmovg eax, edx
mov dword [ebp - 0x8c], eax
shl eax, 3
mov dword [ebx + 0x3c], eax
cmp ecx, 0x3e9
jne 0x1d79764
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
cmp dword [ebp - 0xc], 0
je 0x1d7979a
mov esi, dword [ebx + 0x24]
lea ecx, [edi*8]
mov eax, dword [ebp - 0x68]
imul eax, esi
cdq
idiv ecx
mov ecx, 1
shl eax, 3
mov dword [ebx + 0x3c], eax
lea eax, [esi - 0x7d0]
cmp eax, 1
lea esi, [ebx + 8]
cmovl eax, ecx
mov dword [ebx + 0x24], eax
cmp dword [ebp - 0x84], 0
movss xmm2, dword [0x1e7e3b0]
movss xmm3, dword [0x1e7e4d8]
movss xmm1, dword [0x1e7e3ac]
je 0x1d798f5
push dword [ebx + 0x84]
mov eax, 0x51eb851f
mov dword [ebp - 0xb4], 0
imul edi
movaps xmm3, xmm5
movaps xmm2, xmm4
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x68]
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebx + 0x64]
sub eax, esi
imul eax, edx
lea edi, [eax*4]
mov eax, dword [ebp - 0x64]
lea ecx, [edi + 0x3824]
add ecx, ebx
push dword [eax + 0x3c]
push edx
push esi
push dword [eax + 4]
mov edx, ecx
call fcn.01d770b0
push edi
lea esi, [ebx + 0x3824]
push 0
push esi
call fcn.01e05050
mov eax, dword [ebx + 0xa0]
add esp, 0x20
imul eax, dword [ebx + 0x64]
xor ecx, ecx
test eax, eax
jle 0x1d798b3
movss xmm1, dword [0x1e7e3ac]
movss xmm2, dword [0x1e7e3b0]
movss xmm3, dword [0x1e7e4d8]
mov edx, dword [ebp - 0x9c]
nop dword [eax + eax]
movss xmm0, dword [esi]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp - 0x84], xmm0
ja 0x1d79881
mov dword [ebp - 0x84], 0xc7000000
jmp 0x1d79890
comiss xmm1, xmm0
ja 0x1d79890
mov dword [ebp - 0x84], 0x46fffe00
fld dword [ebp - 0x84]
fistp dword [ebp - 0xc]
mov ax, word [ebp - 0xc]
add esi, 4
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebx + 0xa0]
imul eax, dword [ebx + 0x64]
cmp ecx, eax
jl 0x1d79860
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xb4]
push 1
push eax
push 0
push dword [ebx + 0xa0]
lea esi, [ebx + 8]
push dword [ebp - 0x9c]
mov edx, esi
call fcn.01d7be30
movss xmm1, dword [0x1e7e3ac]
add esp, 0x14
movss xmm2, dword [0x1e7e3b0]
movss xmm3, dword [0x1e7e4d8]
mov eax, dword [ebx + 0x64]
xor ecx, ecx
mov edi, dword [ebp - 0x68]
imul eax, edi
test eax, eax
jle 0x1d79969
mov edx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x7c]
nop dword [eax]
mov eax, dword [ebx + 0x64]
imul eax, dword [ebp - 8]
add eax, ecx
movss xmm0, dword [esi + eax*4]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp - 0x84], xmm0
ja 0x1d7993b
mov dword [ebp - 0x84], 0xc7000000
jmp 0x1d7994a
comiss xmm1, xmm0
ja 0x1d7994a
mov dword [ebp - 0x84], 0x46fffe00
fld dword [ebp - 0x84]
fistp dword [ebp - 0xc]
mov ax, word [ebp - 0xc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebx + 0x64]
imul eax, edi
cmp ecx, eax
jl 0x1d79910
lea esi, [ebx + 8]
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0x8c]
push 0
push eax
lea eax, [ebp - 0x44]
mov edx, esi
push eax
push edi
push dword [ebp - 0x9c]
call fcn.01d7be30
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x88], esi
test esi, esi
jne 0x1d7918b
cmp dword [ebp - 0x8c], eax
jne 0x1d799de
mov dword [ebx + 0x4728], eax
mov eax, dword [ebx + 0x84]
cdq
idiv edi
push dword [ebx + 0x37d0]
mov ecx, dword [ebx + 0x37f0]
mov edx, eax
push dword [ebp - 0x6c]
call fcn.01d76c20
mov ecx, dword [ebp - 0x90]
add esp, 8
mov byte [ecx - 1], al
lea eax, [esi + 1]
jmp 0x1d7a3da
cmp dword [ebx + 0x37f0], 0x3e8
jne 0x1d79a20
mov eax, dword [ebx + 0x4c]
cmp eax, 0x1f40
jne 0x1d799fd
mov dword [ebp - 0x6c], 0x44d
jmp 0x1d79a20
cmp eax, 0x2ee0
jne 0x1d79a0d
mov dword [ebp - 0x6c], 0x44e
jmp 0x1d79a20
mov ecx, dword [ebp - 0x6c]
cmp eax, 0x3e80
mov eax, 0x44f
cmove ecx, eax
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebx + 0x5c]
mov dword [ebx + 0x44], eax
test eax, eax
je 0x1d79a45
mov dword [ebp - 0x80], 1
mov dword [ebp - 0xa4], 0
mov dword [ebx + 0x3804], 1
mov ecx, dword [ebp - 0x6c]
mov eax, 0x15
add ecx, 0xfffffbb3
cmp ecx, 4
ja case.0x1d79a58.1105
jmp dword [ecx*4 + 0x1d7a3f4]
mov eax, 0xd
jmp case.0x1d79a58.1105
mov eax, 0x11
jmp case.0x1d79a58.1105
mov eax, 0x13
mov esi, dword [ebp - 0x78]
push eax
push 0x271c
push esi
call fcn.01d84990
push dword [ebx + 0x37d0]
push 0x2718
push esi
call fcn.01d84990
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.01d84990
add esp, 0x24
cmp dword [ebx + 0x37f0], 0x3e8
je 0x1d79c13
push 0
push 0xfa6
push esi
call fcn.01d84990
add esp, 0xc
cmp dword [ebx + 0x48], 0
je 0x1d79acd
xorps xmm0, xmm0
jmp 0x1d79ad5
movss xmm0, dword [0x1e7e168]
cvttss2si eax, xmm0
push eax
push 0x2712
push esi
call fcn.01d84990
add esp, 0xc
cmp dword [ebx + 0x37f0], 0x3e9
jne 0x1d79b49
bsr eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x30]
sub esi, eax
mov dword [ebp - 0xc], eax
add esi, 6
sar esi, 3
cmp dword [ebp - 0x80], 0
je 0x1d79b0f
add esi, 3
cmp dword [ebx + 0x88], 0
je 0x1d79b37
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x84]
imul eax, edi
shl ecx, 3
cdq
idiv ecx
sub esi, eax
add esi, dword [ebp - 0x94]
jmp 0x1d79c15
mov eax, dword [ebp - 0x94]
cmp esi, eax
cmovg eax, esi
mov esi, eax
jmp 0x1d79c15
cmp dword [ebx + 0x88], 0
je 0x1d79c0b
xor esi, esi
cmp dword [ebx + 0x90], 0x1392
jne 0x1d79bca
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 0x1d79bca
mov eax, edi
mov ecx, dword [ebx + 0x37d0]
cdq
idiv dword [ebp - 0x68]
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 0x1d79bca
movss xmm1, dword [ebp - 0x5c]
mulss xmm1, dword [0x1e7de6c]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
addss xmm1, dword [0x1e7df40]
mulss xmm1, xmm0
cvttss2si esi, xmm1
mov edi, dword [ebp - 0x78]
push 1
push 0xfa6
push edi
call fcn.01d84990
push dword [ebx + 0x8c]
push 0xfb4
push edi
call fcn.01d84990
mov eax, dword [ebx + 0x94]
add eax, esi
push eax
push 0xfa2
push edi
call fcn.01d84990
mov esi, dword [ebp - 0xa8]
add esp, 0x24
dec esi
jmp 0x1d79c15
mov esi, dword [ebp - 0x94]
jmp 0x1d79c15
xor esi, esi
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.01e277a0
mov ecx, dword [ebx + 0x37f0]
mov dword [ebp - 0x8c], esp
cmp ecx, 0x3e8
je 0x1d79c99
mov eax, dword [ebx + 0x37f4]
cmp ecx, eax
je 0x1d79c99
test eax, eax
jle 0x1d79c99
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 - 8]
imul ecx, dword [ebx + 0x64]
add ecx, 0xe09
lea eax, [ebx + ecx*4]
push eax
push dword [ebp - 0x8c]
call fcn.01e27b10
add esp, 0xc
mov edx, dword [ebx + 0xa0]
mov eax, edx
mov edi, dword [ebp - 0x68]
sub eax, edi
sub eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x64]
imul eax, ecx
test eax, eax
jle 0x1d79d03
shl eax, 2
push eax
mov eax, edi
imul eax, ecx
add eax, 0xe09
lea eax, [ebx + eax*4]
push eax
lea eax, [ebx + 0x3824]
push eax
call fcn.01e04550
mov edx, dword [ebp - 8]
lea eax, [edi + edx]
imul eax, dword [ebx + 0x64]
shl eax, 2
push eax
mov eax, dword [ebx + 0xa0]
push dword [ebp - 0x7c]
sub eax, edi
sub eax, edx
imul eax, dword [ebx + 0x64]
add eax, 0xe09
lea eax, [ebx + eax*4]
push eax
call fcn.01e27b10
add esp, 0x18
jmp 0x1d79d2c
mov eax, edx
imul eax, ecx
shl eax, 2
push eax
mov eax, edi
sub eax, edx
add eax, dword [ebp - 8]
imul eax, ecx
mov ecx, dword [ebp - 0x7c]
lea eax, [ecx + eax*4]
push eax
lea eax, [ebx + 0x3824]
push eax
call fcn.01e27b10
add esp, 0xc
movss xmm2, dword [ebx + 0x37dc]
movss xmm0, dword [0x1e7df40]
comiss xmm0, xmm2
movss xmm3, dword [ebp - 0x74]
ja 0x1d79d4b
comiss xmm0, xmm3
jbe 0x1d79d6b
push dword [ebx + 0x84]
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x7c]
mov ecx, edx
push dword [eax + 0x3c]
push dword [ebx + 0x64]
push edi
push dword [eax + 4]
call fcn.01d770b0
add esp, 0x14
cmp dword [ebx + 0x37f0], 0x3e9
mov edx, 0x4000
movss dword [ebx + 0x37dc], xmm3
jne 0x1d79d8d
cmp dword [ebx + 0x37d0], 1
jne 0x1d79da7
mov eax, dword [ebp - 0xa0]
xor ecx, ecx
add eax, 0xffff8ad0
cmovns ecx, eax
add ecx, ecx
cmp ecx, edx
cmovg ecx, edx
mov dword [ebx + 0x58], ecx
cmp dword [ebx + 0x380c], 0
jne 0x1d79e13
cmp dword [ebx + 0x64], 2
jne 0x1d79e13
movzx ecx, word [ebx + 0x37d4]
cmp cx, dx
jl 0x1d79dc7
cmp dword [ebx + 0x58], edx
jge 0x1d79e13
mov eax, dword [ebp - 0x64]
push dword [ebx + 0x84]
movd xmm3, dword [ebx + 0x58]
mov edx, dword [ebp - 0x7c]
push dword [eax + 0x3c]
cvtdq2ps xmm3, xmm3
push 2
push edi
push dword [eax + 4]
mulss xmm3, dword [0x1e7dd34]
movsx eax, cx
mov ecx, edx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, dword [0x1e7dd34]
call fcn.01d76f70
mov ax, word [ebx + 0x58]
add esp, 0x14
mov word [ebx + 0x37d4], ax
mov edi, dword [ebx + 0x37f0]
cmp edi, 0x3ea
je 0x1d79f32
mov eax, dword [ebp - 0x28]
mov ecx, 0x14
mov edx, dword [ebp - 0x30]
bsr eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
cmp edi, 0x3e9
cmove eax, ecx
lea ecx, [edx + 0x10]
sub eax, dword [ebp - 0xc]
add ecx, eax
mov eax, dword [ebp - 0x70]
lea eax, [eax*8 - 8]
cmp ecx, eax
jg 0x1d79f32
cmp edi, 0x3e9
jne 0x1d79e96
mov ecx, dword [ebp - 0x80]
test ecx, ecx
jne 0x1d79e87
mov eax, dword [ebp - 0x28]
bsr eax, eax
sub edx, eax
mov dword [ebp - 0xc], eax
add edx, 0x24
lea eax, [esi*8]
cmp edx, eax
jg 0x1d79f39
mov edx, ecx
lea ecx, [ebp - 0x44]
push 0xc
call fcn.01d7ef10
add esp, 4
cmp dword [ebp - 0x80], 0
je 0x1d79f39
mov edx, dword [ebp - 0xa4]
lea ecx, [ebp - 0x44]
push 1
call fcn.01d7ef10
mov ecx, dword [ebp - 0x70]
add esp, 4
cmp dword [ebx + 0x37f0], 0x3e9
jne 0x1d79ec6
sub ecx, esi
jmp 0x1d79edb
bsr eax, dword [ebp - 0x28]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0xc]
add eax, 6
sar eax, 3
sub ecx, eax
mov eax, 0x51eb851f
dec ecx
imul dword [ebx + 0x94]
mov eax, 2
sar edx, 9
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp ecx, edi
cmovl edi, ecx
cmp edi, eax
cmovl edi, eax
mov eax, 0x101
cmp edi, 0x101
cmovg edi, eax
cmp dword [ebx + 0x37f0], 0x3e9
mov dword [ebp - 0x74], edi
jne 0x1d79f48
push 0x100
lea edx, [edi - 2]
lea ecx, [ebp - 0x44]
call fcn.01d7efa0
add esp, 4
jmp 0x1d79f48
mov dword [ebp - 0x80], 0
xor edi, edi
mov dword [ebx + 0x3804], 0
mov dword [ebp - 0x74], edi
mov eax, dword [ebx + 0x37f0]
xor edx, edx
cmp eax, 0x3ea
mov ecx, 0x11
cmove ecx, edx
mov dword [ebp - 0xb4], ecx
cmp eax, 0x3e8
jne 0x1d79f92
bsr eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x30]
lea ecx, [ebp - 0x44]
sub esi, eax
mov dword [ebp - 0xc], eax
add esi, 6
sar esi, 3
mov dword [ebp - 0x88], esi
call fcn.01d7f0f0
mov dword [ebp - 0xa0], esi
jmp 0x1d79fc8
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x3c]
sub eax, edi
mov ecx, dword [ebp - 0x44]
dec eax
cmp eax, esi
push edx
cmovge eax, esi
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0xa0]
sub eax, edx
add eax, ecx
sub ecx, edx
push eax
add ecx, esi
push ecx
call fcn.01e04550
add esp, 0xc
mov dword [ebp - 0x40], esi
cmp dword [ebp - 0x80], 0
jne 0x1d79fde
cmp dword [ebx + 0x37f0], 0x3e8
je 0x1d7a07c
lea eax, [ebp - 0x60]
push eax
push 0x2726
push dword [ebp - 0x78]
call fcn.01d84990
add esp, 0xc
cmp dword [ebp - 0x80], 0
je 0x1d7a07c
cmp dword [ebp - 0xa4], 0
je 0x1d7a07c
push 0
push 0x271a
push dword [ebp - 0x78]
call fcn.01d84990
push 0
push 0xfa6
push dword [ebp - 0x78]
call fcn.01d84990
mov eax, dword [ebp - 0x90]
add eax, esi
push 0
push edi
mov edi, dword [ebp - 0x78]
mov ecx, edi
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 - 0x7c]
push eax
call fcn.01d82510
add esp, 0x28
test eax, eax
js 0x1d7918b
lea eax, [ebp - 0x14]
push eax
push 0xfbf
push edi
call fcn.01d84990
push 0xfbc
push edi
call fcn.01d84990
add esp, 0x14
jmp 0x1d7a07f
mov edi, dword [ebp - 0x78]
push dword [ebp - 0xb4]
push 0x271a
push edi
call fcn.01d84990
mov ecx, dword [ebx + 0x37f0]
add esp, 0xc
cmp ecx, 0x3e8
je 0x1d7a13b
mov eax, dword [ebx + 0x37f4]
cmp ecx, eax
je 0x1d7a0f9
test eax, eax
jle 0x1d7a0f9
push 0xfbc
push edi
call fcn.01d84990
push 0
push 2
lea eax, [ebp - 8]
mov ecx, edi
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 - 0x8c]
push eax
call fcn.01d82510
push 0
push 0x2712
push edi
call fcn.01d84990
add esp, 0x24
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
bsr eax, edi
sub ecx, eax
mov dword [ebp - 0xc], eax
dec ecx
lea eax, [esi*8]
cmp ecx, eax
jg 0x1d7a13e
mov edx, dword [ebp - 0x7c]
lea eax, [ebp - 0x44]
mov ecx, dword [ebp - 0x78]
push eax
push esi
push 0
push dword [ebp - 0x68]
call fcn.01d82510
mov esi, eax
add esp, 0x10
mov dword [ebp - 0x88], esi
test esi, esi
js 0x1d7918b
mov edi, dword [ebp - 0x28]
cmp dword [ebp - 0x80], 0
je 0x1d7a219
cmp dword [ebp - 0xa4], 0
jne 0x1d7a219
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 - 0x78]
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
call fcn.01d84990
push 0
push 0x271a
push dword [ebp - 0x78]
call fcn.01d84990
push 0
push 0x2712
push dword [ebp - 0x78]
call fcn.01d84990
mov ecx, dword [ebp - 0x7c]
lea eax, [ebp - 8]
push 0
push 2
push eax
mov eax, dword [ebp - 0x68]
sub eax, esi
sub eax, edi
imul eax, dword [ebx + 0x64]
push esi
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x78]
call fcn.01d82510
mov eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0x90]
mov esi, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
push 0
push esi
push eax
mov eax, dword [ebp - 0x68]
sub eax, edi
imul eax, dword [ebx + 0x64]
push edi
mov edi, dword [ebp - 0x78]
lea edx, [ecx + eax*4]
mov ecx, edi
call fcn.01d82510
add esp, 0x40
test eax, eax
js 0x1d7918b
lea eax, [ebp - 0x14]
push eax
push 0xfbf
push edi
call fcn.01d84990
mov edi, dword [ebp - 0x28]
add esp, 0xc
jmp 0x1d7a21c
mov esi, dword [ebp - 0x74]
mov eax, dword [ebx + 0x84]
cdq
idiv dword [ebp - 0x68]
push dword [ebx + 0x37d0]
mov ecx, dword [ebx + 0x37f0]
mov edx, eax
push dword [ebp - 0x6c]
dec dword [ebp - 0x90]
call fcn.01d76c20
mov edx, dword [ebp - 0x90]
add esp, 8
mov byte [edx], al
mov eax, edi
xor eax, dword [ebp - 0x14]
cmp dword [ebp - 0xb8], 0
mov dword [ebx + 0x4728], eax
je 0x1d7a26d
mov dword [ebx + 0x37f4], 0x3ea
jmp 0x1d7a279
mov eax, dword [ebx + 0x37f0]
mov dword [ebx + 0x37f4], eax
mov eax, dword [ebx + 0x37d0]
mov ecx, dword [ebp - 0x30]
mov dword [ebx + 0x37f8], eax
mov eax, dword [ebp - 0x68]
mov dword [ebx + 0x37fc], eax
bsr eax, edi
mov edi, dword [ebp - 0x70]
sub ecx, eax
mov dword [ebp - 0xc], eax
dec ecx
mov dword [ebx + 0x3808], 0
lea eax, [edi*8 - 8]
cmp ecx, eax
jle 0x1d7a2d6
cmp edi, 2
jge 0x1d7a2c1
mov eax, 0xfffffffe
jmp 0x1d7a3da
mov byte [edx + 1], 0
mov eax, 1
mov dword [ebx + 0x4728], 0
jmp 0x1d7a2ff
cmp dword [ebx + 0x37f0], 0x3e8
mov eax, dword [ebp - 0x88]
jne 0x1d7a2ff
cmp dword [ebp - 0x80], 0
jne 0x1d7a2ff
cmp eax, 2
jle 0x1d7a2ff
cmp byte [edx + eax], 0
jne 0x1d7a2ff
dec eax
cmp eax, 2
jg 0x1d7a2f3
inc eax
add eax, esi
cmp dword [ebx + 0x88], 0
jne 0x1d7a3da
mov ecx, dword [ebp - 0x90]
mov edx, eax
push edi
call fcn.01d7f630
add esp, 4
test eax, eax
jne 0x1d7918b
mov eax, edi
jmp 0x1d7a3da
mov eax, dword [ebx + 0x3800]
mov edx, 0x44d
mov ecx, dword [ebx + 0x37f0]
test eax, eax
cmove eax, edx
test ecx, ecx
mov edx, 0x3e8
cmove ecx, edx
cmp esi, 0x64
mov edx, 0x3ea
cmovg ecx, edx
cmp esi, 0x32
jge 0x1d7a364
lea ecx, [edx - 2]
jmp 0x1d7a36c
cmp ecx, 0x3e8
jne 0x1d7a37a
cmp eax, 0x44f
jle 0x1d7a39e
mov eax, 0x44f
jmp 0x1d7a39e
cmp ecx, edx
jne 0x1d7a38c
cmp eax, 0x44e
jne 0x1d7a39e
mov eax, 0x44d
jmp 0x1d7a39e
cmp ecx, 0x3e9
jne 0x1d7a39e
mov edx, 0x450
cmp eax, edx
cmovle eax, edx
push dword [ebx + 0x37d0]
mov edx, esi
push eax
call fcn.01d76c20
mov ecx, dword [ebp - 0x90]
add esp, 8
mov byte [ecx], al
mov eax, 1
cmp dword [ebx + 0x88], 0
jne 0x1d7a3da
push edi
mov edx, eax
call fcn.01d7f630
add esp, 4
test eax, eax
cmove eax, edi
jmp 0x1d7a3da
or eax, 0xffffffff
lea esp, [ebp - 0x13c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.01e029b1
mov esp, ebp
pop ebp
ret