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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x1008c0c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp + 0x34]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0xc4], esi
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0xf0], 0xffffffff
mov dword [ebp - 0xec], 0xffffffff
mov dword [ebp - 0x114], 0
mov edi, dword [ebp + 0x20]
cmp eax, 0x4fc
jle 0x1003e7d9
mov eax, 0x4fc
mov dword [ebp - 0xd4], eax
mov dword [ebx + 0x4670], 0
test esi, esi
jle 0x10040e88
test eax, eax
jle 0x10040e88
cmp eax, 1
jne 0x1003e815
lea eax, [esi + esi*4]
add eax, eax
cmp dword [ebx + 0x90], eax
jne 0x1003e815
mov eax, 0xfffffffe
jmp 0x10040e8b
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
add eax, ebx
add ecx, ebx
mov dword [ebp - 0x124], eax
cmp dword [ebx + 0x6c], 0x803
mov dword [ebp - 0xc8], ecx
jne 0x1003e83f
mov dword [ebp - 0xf8], 0
jmp 0x1003e848
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebx + 0xa8]
cmp dword [ebp + 0x1c], eax
jl 0x1003e856
mov dword [ebp + 0x1c], eax
lea eax, [ebp - 0x12c]
push eax
push 0x271f
push ecx
call fcn.10048b10
fldz
add esp, 0xc
cmp dword [ebx + 0x2c], 7
fld1
mov dword [ebp - 0x5c], 0
jl 0x1003e9e5
mov esi, dword [ebx + 0x90]
cmp esi, 0x3e80
jl 0x1003e9e5
mov edx, dword [ebx + 0x70]
xor ecx, ecx
imul edx, dword [ebp - 0xc4]
fld st(1)
test edx, edx
jle 0x1003e8d6
mov esi, dword [ebp - 0x108]
fld dword [esi + ecx*4]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x1003e8bc
fstp st(1)
fld st(0)
fxch st(1)
fcom st(3)
fnstsw ax
test ah, 0x41
je 0x1003e8c9
fstp st(3)
jmp 0x1003e8cb
fstp st(0)
inc ecx
cmp ecx, edx
jl 0x1003e8aa
mov esi, dword [ebx + 0x90]
fxch st(2)
fchs
fcom st(2)
fnstsw ax
test ah, 5
jp 0x1003e8e7
fstp st(0)
jmp 0x1003e8e9
fstp st(2)
mov ecx, dword [ebp + 0x1c]
mov eax, 1
shl eax, cl
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fdivr st(1)
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x1003e91b
mov dword [ebp - 0x114], 1
jmp 0x1003e9f1
mov eax, dword [ebx + 0x2110]
fstp st(0)
mov dword [ebp - 0xf0], eax
mov eax, dword [ebx + 0x2114]
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0x5c]
push eax
push dword [ebp - 0x118]
lea eax, [ebx + 0xbc]
push ecx
push esi
push dword [ebp + 0x30]
mov esi, dword [ebp - 0xc4]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push esi
push dword [ebp + 0x24]
push edi
push dword [ebp - 0x12c]
push eax
call fcn.1004bc50
fld dword [0x1007ffac]
add esp, 0x30
fcomp dword [ebp - 0x3c]
fnstsw ax
test ah, 5
jp 0x1003e9e1
push dword [ebx + 0xb4]
fld dword [ebx + 0x4668]
fmul dword [0x10074680]
push dword [ebx + 0x70]
mov edi, dword [ebp - 0x108]
push esi
push edi
fstp dword [ebp - 0xd0]
call fcn.1003d700
fcomp dword [ebp - 0xd0]
fnstsw ax
add esp, 0x10
test ah, 5
jp 0x1003e9c8
fld dword [ebx + 0x4668]
fmul dword [0x10074680]
fstp dword [ebx + 0x4668]
fld1
jmp 0x1003e9e7
push dword [ebx + 0xb4]
push dword [ebx + 0x70]
push esi
push edi
call fcn.1003d700
fstp dword [ebx + 0x4668]
add esp, 0x10
fld1
jmp 0x1003e9e7
fstp st(1)
mov dword [ebx + 0x8c], 0xffffffff
cmp dword [ebp - 0x5c], 0
fld dword [0x1007467c]
mov dword [ebx + 0x4660], 0
je 0x1003ea8b
cmp dword [ebx + 0x7c], 0xfffffc18
jne 0x1003ea3c
fxch st(1)
sub esp, 8
fsub dword [ebp - 0x48]
fmul dword [0x1007ffb0]
faddp st(1)
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
add esp, 8
call fcn.1006caa0
mov dword [ebx + 0x8c], eax
jmp 0x1003ea40
fstp st(0)
fstp st(0)
mov ecx, dword [ebp - 0x40]
cmp ecx, 0xc
jg 0x1003ea54
mov dword [ebx + 0x4660], 0x44d
jmp 0x1003ea8f
cmp ecx, 0xe
jg 0x1003ea65
mov dword [ebx + 0x4660], 0x44e
jmp 0x1003ea8f
cmp ecx, 0x10
jg 0x1003ea76
mov dword [ebx + 0x4660], 0x44f
jmp 0x1003ea8f
xor eax, eax
cmp ecx, 0x12
setg al
add eax, 0x450
mov dword [ebx + 0x4660], eax
jmp 0x1003ea8f
fstp st(0)
fstp st(0)
cmp dword [ebx + 0x70], 2
jne 0x1003eabf
cmp dword [ebx + 0x78], 1
je 0x1003eabf
mov edi, dword [ebp - 0xc4]
lea eax, [ebx + 0x374c]
push eax
push dword [ebx + 0x90]
push edi
push dword [ebp - 0x108]
call fcn.1003d870
add esp, 0x10
jmp 0x1003eac7
fldz
mov edi, dword [ebp - 0xc4]
push dword [ebp - 0xd4]
push edi
push ebx
call fcn.10041d00
mov esi, dword [ebx + 0x90]
mov ecx, eax
mov eax, esi
mov dword [ebx + 0xa0], ecx
cdq
add esp, 0xc
idiv edi
mov edx, dword [ebx + 0x94]
mov dword [ebp - 0x10c], eax
test edx, edx
jne 0x1003ebfe
lea eax, [esi + esi*2]
shl eax, 2
cdq
idiv edi
mov edi, dword [ebp - 0xd4]
mov esi, eax
lea eax, [ecx + ecx*2]
shl eax, 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
jge 0x1003eb39
mov edi, eax
mov dword [ebp - 0xd4], eax
jmp 0x1003eb3f
mov dword [ebp - 0xd4], edi
mov ecx, edi
mov eax, 0x2aaaaaab
imul ecx, esi
shl ecx, 3
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0xa0], eax
cmp edi, 1
jge 0x1003ebf6
mov edi, dword [ebp - 0x10c]
mov dword [ebp - 0xd4], 1
mov esi, dword [ebx + 0x3738]
fstp st(0)
mov ecx, dword [ebx + 0x3728]
test esi, esi
jne 0x1003eb8d
mov esi, 0x44d
mov dword [ebp - 0x114], 0
mov dword [ebp - 0xd0], 0
test ecx, ecx
jne 0x1003ebaa
mov ecx, 0x3e8
cmp edi, 0x64
jle 0x1003ebb4
mov ecx, 0x3ea
cmp edi, 0x19
jne 0x10040d96
cmp ecx, 0x3e8
je 0x1003ebe0
mov edi, 0x32
mov dword [ebp - 0x114], 1
cmp ecx, 0x3e8
jne 0x10040df9
cmp esi, 0x44f
jle 0x10040e23
mov esi, 0x44f
jmp 0x10040e23
mov edx, dword [ebx + 0x94]
jmp 0x1003ec04
mov edi, dword [ebp - 0xd4]
cmp edi, 3
mov edi, dword [ebp - 0x10c]
jl 0x1003eb76
mov ecx, dword [ebx + 0xa0]
lea eax, [edi + edi*2]
shl eax, 3
cmp ecx, eax
jl 0x1003eb76
cmp edi, 0x32
jge 0x1003ec4c
mov eax, edi
imul eax, dword [ebp - 0xd4]
cmp eax, 0x12c
jl 0x1003eb76
cmp ecx, 0x960
jl 0x1003eb76
push dword [ebx + 0x28]
mov esi, dword [ebx + 0x70]
mov eax, edi
push dword [ebx + 0x2c]
imul eax, dword [ebp - 0xd4]
push 0
push edx
push edi
push esi
shl eax, 3
push ecx
mov dword [ebp - 0x118], eax
call fcn.1003d620
mov ecx, dword [ebx + 0x7c]
add esp, 0x1c
mov edx, eax
cmp ecx, 0xbb9
jne 0x1003ec89
mov edi, 0x7f
jmp 0x1003ecd0
cmp ecx, 0xbba
jne 0x1003ec95
xor edi, edi
jmp 0x1003ecd0
mov eax, dword [ebx + 0x8c]
test eax, eax
js 0x1003ecbd
imul edi, eax, 0x147
sar edi, 8
cmp dword [ebx + 0x6c], 0x801
jne 0x1003ecd0
cmp edi, 0x73
jl 0x1003ecd0
mov edi, 0x73
jmp 0x1003ecd0
mov edi, dword [ebx + 0x6c]
sub edi, 0x800
neg edi
sbb edi, edi
and edi, 0xffffffbd
add edi, 0x73
mov eax, dword [ebx + 0x78]
cmp eax, 0xfffffc18
je 0x1003ece7
cmp esi, 2
jne 0x1003ed14
mov dword [ebx + 0x3708], eax
jmp 0x1003ed1a
cmp esi, 2
jne 0x1003ed14
mov ecx, dword [ebx + 0x3708]
sub ecx, esi
neg ecx
sbb ecx, ecx
xor eax, eax
and ecx, 0x7d0
add ecx, 0x59d8
cmp edx, ecx
setg al
inc eax
mov dword [ebx + 0x3708], eax
jmp 0x1003ed1a
mov dword [ebx + 0x3708], esi
push dword [ebx + 0x28]
push dword [ebx + 0x2c]
push 0
push dword [ebx + 0x94]
push dword [ebp - 0x10c]
push dword [ebx + 0x3708]
push dword [ebx + 0xa0]
call fcn.1003d620
mov esi, dword [ebx + 0x6c]
add esp, 0x1c
mov dword [ebp - 0xd0], eax
cmp esi, 0x803
jne 0x1003ed62
mov dword [ebx + 0x3728], 0x3ea
jmp 0x1003ee84
mov eax, dword [ebx + 0x88]
cmp eax, 0xfffffc18
jne 0x1003ee7e
fld1
fsub st(1)
fmul dword [0x100746a0]
fxch st(1)
fmul dword [0x1007469c]
faddp st(1)
call fcn.1006caa0
lea ecx, [eax - 0x3e80]
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, 0x3e80
cmp esi, 0x800
jne 0x1003edaf
add ecx, 0x1f40
mov eax, dword [ebx + 0x372c]
cmp eax, 0x3ea
jne 0x1003edc4
sub ecx, 0xfa0
jmp 0x1003edce
test eax, eax
jle 0x1003edce
add ecx, 0xfa0
xor eax, eax
cmp dword [ebp - 0xd0], ecx
setge al
cmp dword [ebx + 0x30], 0
lea eax, [eax*2 + 0x3e8]
mov dword [ebx + 0x3728], eax
je 0x1003ee05
mov eax, 0x80
sub eax, edi
sar eax, 4
cmp dword [ebx + 0x28], eax
jle 0x1003ee05
mov dword [ebx + 0x3728], 0x3e8
cmp dword [ebx + 0xb8], 0
je 0x1003ee24
cmp dword [ebp - 0x5c], 0
jne 0x1003ee24
cmp dword [ebp - 0x114], 0
jne 0x1003ee24
mov eax, 1
jmp 0x1003ee26
xor eax, eax
mov dword [ebx + 0x38], eax
test eax, eax
je 0x1003ee3c
cmp edi, 0x64
jle 0x1003ee3c
mov dword [ebx + 0x3728], 0x3e8
mov esi, dword [ebx + 0x90]
xor eax, eax
cmp dword [ebp - 0x10c], 0x32
setle al
dec eax
lea ecx, [esi*8]
and eax, 0xbb8
add eax, 0x1770
imul eax, dword [ebp - 0xc4]
cdq
idiv ecx
cmp dword [ebp - 0xd4], eax
jge 0x1003ee8c
mov dword [ebx + 0x3728], 0x3ea
jmp 0x1003ee8c
mov dword [ebx + 0x3728], eax
mov esi, dword [ebx + 0x90]
fstp st(0)
cmp dword [ebx + 0x3728], 0x3ea
je 0x1003eebb
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xc4], eax
jge 0x1003eebb
mov dword [ebx + 0x3728], 0x3ea
cmp dword [ebx + 0xb0], 0
je 0x1003eece
mov dword [ebx + 0x3728], 0x3ea
mov ecx, dword [ebx + 0x372c]
test ecx, ecx
jle 0x1003ef4d
mov eax, dword [ebx + 0x3728]
cmp eax, 0x3ea
je 0x1003eeef
cmp ecx, 0x3ea
je 0x1003eef7
jmp 0x1003ef4d
cmp ecx, 0x3ea
je 0x1003ef4d
xor edx, edx
mov dword [ebp - 0xdc], 1
cmp eax, 0x3ea
setne dl
mov dword [ebp - 0x104], edx
cmp eax, 0x3ea
jne 0x1003ef4d
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xc4], eax
jl 0x1003ef43
mov dword [ebx + 0x3728], ecx
mov dword [ebp - 0x134], 1
jmp 0x1003ef4d
mov dword [ebp - 0xdc], 0
cmp dword [ebx + 0x3708], 1
jne 0x1003ef8c
cmp dword [ebx + 0x3730], 2
jne 0x1003ef8c
cmp dword [ebx + 0x44], 0
jne 0x1003ef8c
cmp dword [ebx + 0x3728], 0x3ea
je 0x1003ef8c
cmp ecx, 0x3ea
je 0x1003ef8c
mov dword [ebx + 0x44], 1
mov dword [ebx + 0x3708], 2
jmp 0x1003ef93
mov dword [ebx + 0x44], 0
push dword [ebx + 0x28]
mov esi, dword [ebx + 0x3728]
push dword [ebx + 0x2c]
push esi
push dword [ebx + 0x94]
push dword [ebp - 0x10c]
push dword [ebx + 0x3708]
push dword [ebx + 0xa0]
call fcn.1003d620
add esp, 0x1c
mov dword [ebp - 0x120], eax
cmp esi, 0x3ea
je 0x1003efff
cmp dword [ebx + 0x372c], 0x3ea
jne 0x1003efff
lea eax, [ebp - 0xc0]
push eax
push dword [ebx + 0xb4]
push dword [ebp - 0x124]
call fcn.1004b0c0
add esp, 0xc
mov dword [ebp - 0x110], 1
mov esi, dword [ebx + 0x3728]
cmp esi, 0x3ea
je 0x1003f020
cmp dword [ebx + 0x3744], 0
jne 0x1003f020
cmp dword [ebx + 0x54], 0
je 0x1003f190
cmp dword [ebx + 0x70], 2
mov edx, 0x451
jne 0x1003f03d
cmp dword [ebx + 0x78], 1
je 0x1003f03d
mov esi, 0x100745f4
mov eax, 0x10074614
jmp 0x1003f047
mov esi, 0x100745b4
mov eax, 0x100745d4
mov ecx, dword [esi]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + 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 - 0xcc]
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi + 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 - 0xcc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 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 - 0xcc]
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 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 - 0xcc]
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 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 - 0xcc]
mov dword [ebp - 0x10], ecx
mov ecx, dword [esi + 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 - 0xcc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [esi + 0x1c]
mov eax, dword [eax + 0x1c]
sub ecx, eax
imul ecx, edi
imul ecx, edi
mov edi, dword [ebx + 0x3744]
sar ecx, 0xe
add ecx, eax
mov dword [ebp - 8], ecx
lea ecx, [ebp - 8]
mov edi, edi
mov eax, dword [ecx - 4]
mov esi, dword [ecx]
test edi, edi
jne 0x1003f147
cmp dword [ebx + 0x373c], edx
jl 0x1003f145
sub eax, esi
jmp 0x1003f147
add eax, esi
cmp dword [ebp - 0x120], eax
jge 0x1003f15b
dec edx
sub ecx, 8
cmp edx, 0x44d
jg 0x1003f130
mov esi, dword [ebx + 0x3728]
mov dword [ebx + 0x373c], edx
mov dword [ebx + 0x3738], edx
test edi, edi
jne 0x1003f190
cmp esi, 0x3ea
je 0x1003f190
cmp dword [ebx + 0x58], edi
jne 0x1003f190
cmp edx, 0x44f
jle 0x1003f190
mov dword [ebx + 0x3738], 0x44f
mov eax, dword [ebx + 0x84]
cmp dword [ebx + 0x3738], eax
jle 0x1003f1a4
mov dword [ebx + 0x3738], eax
mov ecx, dword [ebx + 0x80]
cmp ecx, 0xfffffc18
je 0x1003f1b8
mov dword [ebx + 0x3738], ecx
cmp esi, 0x3ea
je 0x1003f1e4
cmp dword [ebp - 0x118], 0x3a98
jge 0x1003f1e4
mov eax, dword [ebx + 0x3738]
cmp eax, 0x44f
jl 0x1003f1de
mov eax, 0x44f
mov dword [ebx + 0x3738], eax
mov eax, dword [ebx + 0x90]
cmp eax, 0x5dc0
jg 0x1003f207
cmp dword [ebx + 0x3738], 0x450
jle 0x1003f207
mov dword [ebx + 0x3738], 0x450
cmp eax, 0x3e80
jg 0x1003f224
cmp dword [ebx + 0x3738], 0x44f
jle 0x1003f224
mov dword [ebx + 0x3738], 0x44f
cmp eax, 0x2ee0
jg 0x1003f241
cmp dword [ebx + 0x3738], 0x44e
jle 0x1003f241
mov dword [ebx + 0x3738], 0x44e
cmp eax, 0x1f40
jg 0x1003f25e
cmp dword [ebx + 0x3738], 0x44d
jle 0x1003f25e
mov dword [ebx + 0x3738], 0x44d
mov edx, dword [ebx + 0x4660]
test edx, edx
je 0x1003f2f0
cmp ecx, 0xfffffc18
jne 0x1003f2f0
mov ecx, dword [ebx + 0x3708]
mov edi, dword [ebp - 0x120]
imul eax, ecx, 0x4650
cmp edi, eax
jg 0x1003f297
cmp esi, 0x3ea
jne 0x1003f297
lea ecx, [esi + 0x63]
jmp 0x1003f2d2
imul eax, ecx, 0x5dc0
cmp edi, eax
jg 0x1003f2ae
cmp esi, 0x3ea
jne 0x1003f2ae
lea ecx, [esi + 0x64]
jmp 0x1003f2d2
imul eax, ecx, 0x7530
cmp edi, eax
jg 0x1003f2bf
mov ecx, 0x44f
jmp 0x1003f2d2
imul eax, ecx, 0xabe0
xor ecx, ecx
cmp edi, eax
setg cl
add ecx, 0x450
cmp edx, ecx
jg 0x1003f2d8
mov edx, ecx
mov eax, dword [ebx + 0x3738]
mov dword [ebx + 0x4660], edx
cmp eax, edx
jl 0x1003f2ea
mov eax, edx
mov dword [ebx + 0x3738], eax
cmp dword [ebx + 0x30], 0
mov ecx, dword [ebx + 0x34]
mov esi, dword [ebx + 0x28]
mov dword [ebp - 0xd0], ecx
je 0x1003f3d9
test esi, esi
je 0x1003f3d9
cmp dword [ebx + 0x3728], 0x3ea
je 0x1003f3d9
mov eax, dword [ebx + 0x3738]
mov dword [ebp - 0xcc], eax
lea ebx, [ebx]
mov edi, dword [ebx + 0x3738]
mov edx, dword [edi*8 + 0x100723cc]
mov eax, dword [edi*8 + 0x100723d0]
cmp ecx, 1
jne 0x1003f34d
sub edx, eax
jmp 0x1003f353
test ecx, ecx
jne 0x1003f353
add edx, eax
mov dword [ebp - 0xfc], esi
cmp esi, 0x19
jl 0x1003f3c9
mov dword [ebp - 0xfc], 0x19
mov ecx, 0x19
mov eax, 0x7d
sub eax, ecx
imul eax, edx
movzx eax, ax
imul ecx, eax, 0x28f
mov eax, 0x7d
sub eax, dword [ebp - 0xfc]
imul eax, edx
sar ecx, 0x10
sar eax, 0x10
imul eax, eax, 0x28f
add ecx, eax
cmp dword [ebp - 0x120], ecx
jg 0x1003f4f0
cmp esi, 5
jle 0x1003f3d9
cmp edi, 0x44d
jle 0x1003f3cd
mov ecx, dword [ebp - 0xd0]
lea eax, [edi - 1]
mov dword [ebx + 0x3738], eax
jmp 0x1003f330
mov ecx, esi
jmp 0x1003f36d
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x3738], eax
xor eax, eax
push dword [ebp + 0x1c]
mov dword [ebx + 0x34], eax
push 0xfc4
push dword [ebp - 0xc8]
call fcn.10048b10
mov eax, dword [ebx + 0x3728]
add esp, 0xc
cmp eax, 0x3ea
jne 0x1003f417
cmp dword [ebx + 0x3738], 0x44e
jne 0x1003f417
mov dword [ebx + 0x3738], 0x44f
cmp dword [ebx + 0xb0], 0
je 0x1003f42a
mov dword [ebx + 0x3738], 0x44d
mov ecx, dword [ebx + 0x3738]
mov dword [ebp - 0xcc], ecx
cmp eax, 0x3e8
jne 0x1003f44f
cmp ecx, 0x44f
jle 0x1003f44f
mov dword [ebx + 0x3728], 0x3e9
cmp dword [ebx + 0x3728], 0x3e9
jne 0x1003f46d
cmp ecx, 0x44f
jg 0x1003f46d
mov dword [ebx + 0x3728], 0x3e8
mov edi, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul edi
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebp - 0xc4], esi
jle 0x1003f49c
cmp dword [ebx + 0x3728], 0x3e8
jne 0x1003f522
lea ecx, [edi + edi*2]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xc4], eax
jle 0x1003f575
cmp dword [ebx + 0x3728], 0x3e8
jne 0x1003f522
lea ecx, [edi + edi]
mov eax, 0x51eb851f
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xc4], eax
mov eax, 0x51eb851f
jne 0x1003f4fa
imul edi
sar edx, 3
jmp 0x1003f51b
mov eax, 1
jmp 0x1003f3db
lea ecx, [edi + edi*2]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xc4], eax
jne 0x1003f522
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xf0]
cdq
idiv esi
cmp ecx, 0xffffffff
je 0x1003f548
mov dword [ebx + 0x2110], ecx
mov ecx, dword [ebp - 0xec]
mov dword [ebx + 0x2114], ecx
push dword [ebp + 0x38]
mov edx, dword [ebp + 0x18]
push dword [ebp + 0x1c]
mov ecx, dword [ebp - 0xd8]
push dword [ebp - 0x134]
push edx
push ecx
push esi
push eax
push dword [ebp - 0x108]
push ebx
call fcn.1003e0b0
add esp, 0x24
jmp 0x10040e8b
cmp dword [ebx + 0x3740], 0
je 0x1003f5a6
mov dword [ebp - 0xdc], 1
mov dword [ebp - 0x104], 1
mov dword [ebx + 0x3740], 0
mov dword [ebp - 0x110], 1
mov eax, dword [ebx + 0x3728]
sub eax, 0x3ea
neg eax
sbb eax, eax
and eax, dword [ebp - 0xdc]
mov dword [ebp - 0xf4], eax
je 0x1003f5f3
push dword [ebx + 0x3708]
push dword [ebp - 0x10c]
push dword [ebx + 0xa0]
push dword [ebp - 0xd4]
call fcn.1003d730
add esp, 0x10
mov dword [ebp - 0xe8], eax
neg eax
sbb eax, eax
and dword [ebp - 0xf4], eax
mov eax, dword [ebx + 0xa0]
lea ecx, [edi*8]
mov esi, dword [ebp - 0xc4]
imul eax, esi
cdq
idiv ecx
mov ecx, dword [ebp - 0xd4]
mov edi, ecx
sub edi, dword [ebp - 0xe8]
mov dword [ebp - 0xd0], edi
cmp edi, eax
jl 0x1003f62a
mov dword [ebp - 0xd0], eax
mov edx, dword [ebp - 0xd8]
lea eax, [ecx - 1]
inc edx
push eax
push edx
lea eax, [ebp - 0x178]
mov dword [ebp - 0xd8], edx
push eax
mov dword [ebp - 0x148], edx
call fcn.10049f70
mov ecx, dword [ebp - 0xf8]
add esp, 0xc
add ecx, esi
mov esi, dword [ebx + 0x70]
mov eax, esi
imul eax, ecx
shl eax, 2
call fcn.1006ca60
mov eax, esi
mov edi, esp
imul eax, dword [ebp - 0xf8]
mov dword [ebp - 0xdc], edi
shl eax, 2
push eax
mov eax, dword [ebx + 0xac]
sub eax, dword [ebp - 0xf8]
imul eax, esi
add eax, 0xdd8
lea eax, [ebx + eax*4]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [ebx + 0x3728], 0x3ea
jne 0x1003f6bc
push 0x3c
call fcn.1004e0e0
mov esi, eax
add esp, 4
shl esi, 8
jmp 0x1003f6c5
mov eax, dword [ebp - 0x124]
mov esi, dword [eax + 8]
mov edx, dword [ebx + 0x3710]
sub esi, edx
movzx eax, si
imul ecx, eax, 0x3d7
sar esi, 0x10
imul eax, esi, 0x3d7
sar ecx, 0x10
add ecx, edx
add eax, ecx
mov dword [ebx + 0x3710], eax
sar eax, 8
push eax
call fcn.1004e150
add esp, 4
mov edx, eax
cmp dword [ebx + 0x6c], 0x800
mov eax, dword [ebx + 0x70]
jne 0x1003f9fc
mov dword [ebp - 0x140], eax
lea ecx, [ebx + 0x3718]
imul eax, dword [ebp - 0xf8]
mov dword [ebp - 0xe0], ecx
lea eax, [edi + eax*4]
mov dword [ebp - 0x11c], eax
movsx eax, dx
imul esi, eax, 0x9a7
mov eax, 0x10624dd3
imul dword [ebx + 0x90]
mov eax, esi
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
idiv ecx
mov edi, eax
mov eax, 0x10000000
imul ecx, edi, 0x1d7
mov ebx, edi
sar ebx, 0xf
inc ebx
movsx esi, di
sar ebx, 1
movzx edx, di
sub eax, ecx
imul edx, esi
mov ecx, eax
mov dword [ebp - 0x184], eax
neg ecx
mov dword [ebp - 0x17c], eax
add ecx, ecx
sar eax, 6
mov dword [ebp - 0x180], ecx
mov ecx, edi
sar ecx, 0x10
imul esi, ecx
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xfc], edi
lea eax, [ebx + ecx]
sar edx, 0x10
mov ecx, dword [ebp - 0xfc]
imul eax, edi
imul ecx, ebx
add eax, edx
add edx, 0xff800000
movsx edi, ax
add esi, edx
mov eax, dword [ebp - 0xec]
add ecx, esi
sar ecx, 0xf
inc ecx
movzx eax, ax
sar ecx, 1
mov dword [ebp - 0x138], edi
imul eax, dword [ebp - 0x138]
mov edi, dword [ebp - 0xec]
mov esi, edi
imul ecx, esi
mov dword [ebp - 0xf0], edi
sar dword [ebp - 0xf0], 0x10
sar eax, 0x10
movsx edx, si
add ecx, eax
mov eax, dword [ebp - 0xf0]
imul eax, dword [ebp - 0x138]
add ecx, eax
mov eax, edx
imul edx, dword [ebp - 0xf0]
mov dword [ebp - 0x13c], ecx
mov ecx, esi
sar ecx, 0xf
inc ecx
sar ecx, 1
imul ecx, esi
movzx esi, di
imul eax, esi
sar eax, 0x10
add ecx, eax
add ecx, edx
mov esi, dword [ebp - 0x140]
lea eax, [ebp - 0x13c]
mov ebx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0xe0]
push esi
push dword [ebp - 0xc4]
mov dword [ebp - 0x138], ecx
push ebx
push edi
push eax
lea eax, [ebp - 0x184]
push eax
push dword [ebp - 0x108]
call fcn.10041c60
add esp, 0x1c
cmp esi, 2
mov esi, dword [ebp - 0xc4]
jne 0x1003f8a4
push 2
push esi
lea eax, [ebx + 4]
push eax
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x184]
push eax
mov eax, dword [ebp - 0x108]
add eax, 4
push eax
call fcn.10041c60
add esp, 0x1c
mov ebx, dword [ebp - 0x128]
cmp dword [ebp + 0x38], 0
je 0x1003f92a
mov edx, dword [ebx + 0x70]
mov eax, edx
imul eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xdc]
imul edx, esi
push edx
lea eax, [ecx + eax*4]
mov ecx, dword [ebx + 0xb4]
and ecx, 7
push eax
push eax
mov eax, dword [ecx*4 + 0x1007506c]
call eax
fcomp dword [0x100746a4]
fnstsw ax
add esp, 0xc
test ah, 5
jnp 0x1003f92a
mov ecx, dword [ebx + 0x70]
mov eax, ecx
imul ecx, dword [ebp - 0xf8]
imul eax, esi
shl eax, 2
push eax
mov eax, dword [ebp - 0xdc]
push 0
lea eax, [eax + ecx*4]
push eax
call sub.VCRUNTIME140.dll_memset
fldz
add esp, 0xc
fst dword [ebx + 0x3724]
fst dword [ebx + 0x3720]
fst dword [ebx + 0x371c]
fstp dword [edi]
fld1
mov edi, dword [ebx + 0x3728]
fstp dword [ebp - 0xf0]
cmp edi, 0x3ea
je 0x100401aa
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x11c], eax
imul eax, esi
add eax, eax
call fcn.1006ca60
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xec], esp
lea esi, [esi*8 - 8]
imul esi, dword [ebp - 0x10c]
cmp edi, 0x3e9
jne 0x1003fbb5
imul eax, dword [ebp - 0xc4], 0x32
xor ecx, ecx
push dword [ebx + 0x34]
push dword [ebx + 0x94]
cmp dword [ebx + 0x90], eax
sete cl
push ecx
mov ecx, dword [ebp - 0xcc]
push ecx
push esi
call fcn.1003d7d0
add esp, 0x14
mov dword [ebx + 0x24], eax
cmp dword [ebx + 0x3748], 0
jne 0x1003fbb8
sub eax, esi
mov dword [ebp - 0xe0], eax
fild dword [ebp - 0xe0]
fmul dword [0x10074670]
fmul qword [0x100745a0]
fldl2e
fmulp st(1)
fld st(0)
frndint
fxch st(1)
fsub st(1)
f2xm1
fld1
faddp st(1)
fscale
fstp st(1)
fld1
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [ebp - 0xf0]
jmp 0x1003fbba
fild dword [ebx + 0x90]
lea edi, [ebx + 0x3718]
mov edx, dword [ebp - 0xdc]
imul eax, dword [ebp - 0xf8]
cmp dword [ebx + 0x70], 2
fdivr dword [0x1007468c]
lea eax, [edx + eax*4]
fld1
fsub st(1)
fst dword [ebp - 0xe0]
jne 0x1003fb47
fstp st(0)
xor esi, esi
fld dword [edi]
fld dword [edi + 4]
fst dword [ebp - 0xf0]
fld dword [edi + 8]
fld dword [edi + 0xc]
fst dword [ebp - 0xec]
cmp dword [ebp - 0xc4], esi
jle 0x1003fb43
mov ecx, dword [ebp - 0x108]
lea edx, [eax + 4]
mov ebx, dword [ebp - 0x108]
sub ecx, eax
mov eax, dword [ebp - 0xc4]
fstp st(2)
jmp 0x1003fa76
fstp st(1)
fstp st(1)
fld dword [ebx + esi*8]
inc esi
fld dword [ecx + edx]
fld st(1)
fsub st(4)
fld st(1)
fsub st(4)
fxch st(3)
fmul st(6)
fadd dword [0x1007465c]
fld dword [ebp - 0xe0]
fmul st(6), st(0)
fxch st(1)
faddp st(6)
fxch st(2)
fmul st(6)
fadd dword [0x1007465c]
fxch st(4)
fmul st(2)
faddp st(4)
fxch st(3)
fstp dword [ebp - 0xfc]
fld st(2)
fsub dword [ebp - 0xf0]
fld st(2)
fsub dword [ebp - 0xec]
fxch st(4)
fmul st(6)
fadd dword [0x1007465c]
fld dword [ebp - 0xf0]
fmul st(3)
faddp st(1)
fst dword [ebp - 0xf0]
fxch st(3)
fmul st(6)
fadd dword [0x1007465c]
fld dword [ebp - 0xec]
fmulp st(3)
faddp st(2)
fxch st(1)
fst dword [ebp - 0xec]
fxch st(1)
fstp dword [edx - 4]
fxch st(2)
fstp dword [edx]
fld dword [ebp - 0xfc]
add edx, 8
cmp esi, eax
jl 0x1003fa74
mov ebx, dword [ebp - 0x128]
fstp st(0)
fstp st(3)
fld dword [ebp - 0xfc]
fxch st(1)
fxch st(3)
fxch st(1)
mov esi, dword [ebp - 0xc4]
fxch st(2)
fstp dword [edi]
fstp dword [edi + 4]
fstp dword [edi + 8]
fstp dword [edi + 0xc]
jmp 0x1003f8aa
fstp st(4)
jmp 0x1003fb2b
fld dword [edi]
mov esi, dword [ebp - 0xc4]
fld dword [edi + 4]
test esi, esi
jle 0x1003fba7
mov edx, dword [ebp - 0x108]
mov ecx, esi
fld dword [0x1007465c]
sub edx, eax
fld dword [edx + eax]
fld st(0)
fsub st(4)
fxch st(1)
fmul st(6)
fadd st(2)
fxch st(4)
fmul st(5)
faddp st(4)
fld st(0)
fsub st(3)
fld st(6)
fmulp st(2)
fxch st(1)
fadd st(2)
fxch st(3)
fmul st(5)
faddp st(3)
fstp dword [eax]
add eax, 4
sub ecx, 1
jne 0x1003fb66
fstp st(4)
fstp st(2)
fstp st(2)
fxch st(1)
fstp dword [edi]
fstp dword [edi + 4]
jmp 0x1003f8aa
fstp st(3)
fstp st(1)
fstp dword [edi]
fstp dword [edi + 4]
jmp 0x1003f8aa
mov dword [ebx + 0x24], esi
fld1
mov eax, dword [ebx + 0x3748]
fldz
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x1003fd28
cmp dword [ebx + 0x94], 0
je 0x1003fd28
cmp dword [ebx + 0xb0], 0
jne 0x1003fd28
mov eax, dword [ebx + 0x3738]
mov edi, 0x11
mov dword [ebp - 0x100], edi
fld st(0)
mov dword [ebp - 0xfc], 0x3e80
cmp eax, 0x44d
jne 0x1003fc1f
mov edi, 0xd
mov dword [ebp - 0xfc], 0x1f40
jmp 0x1003fc35
cmp eax, 0x44e
jne 0x1003fc3b
mov edi, 0xf
mov dword [ebp - 0xfc], 0x2ee0
mov dword [ebp - 0x100], edi
mov eax, dword [ebx + 0x70]
test eax, eax
jle 0x1003fcac
fld dword [0x100746a8]
xor esi, esi
fld dword [0x1007467c]
mov ebx, dword [ebp - 0xe0]
mov dword [ebp - 0xd0], eax
lea ecx, [ebx + esi]
mov edx, edi
fld dword [ecx]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x1003fc86
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x1003fc80
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x1003fc8c
jmp 0x1003fc8a
fstp st(0)
fld st(1)
jmp 0x1003fc8c
fstp st(0)
fld st(0)
fmul st(1)
add ecx, 4
faddp st(3)
sub edx, 1
jne 0x1003fc61
add esi, 0x54
sub dword [ebp - 0xd0], 1
jne 0x1003fc5c
mov ebx, dword [ebp - 0x128]
fstp st(1)
fstp st(0)
fidiv dword [ebp - 0x100]
mov eax, dword [ebp - 0xfc]
movzx eax, ax
mov dword [ebp - 0xe0], eax
fimul dword [ebp - 0x11c]
fadd dword [0x10074678]
fimul dword [ebp - 0xe0]
call fcn.1006caa0
mov edi, dword [ebx + 0x24]
mov esi, eax
mov ecx, edi
mov eax, 0x55555556
neg ecx
add ecx, ecx
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jg 0x1003fcf7
mov esi, eax
mov eax, dword [ebx + 0x3738]
cmp eax, 0x450
je 0x1003fd10
cmp eax, 0x451
je 0x1003fd10
lea eax, [edi + esi]
jmp 0x1003fd25
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 dword [ebx + 0x24], eax
imul eax, dword [ebp - 0xc4], 0x3e8
lea edi, [ebx + 8]
mov esi, dword [ebx + 0x90]
cdq
idiv esi
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x70]
mov dword [edi], eax
mov eax, dword [ebx + 0x3708]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xcc]
cmp eax, 0x44d
jne 0x1003fd65
mov dword [ebx + 0x1c], 0x1f40
jmp 0x1003fd7c
cmp eax, 0x44e
jne 0x1003fd75
mov dword [ebx + 0x1c], 0x2ee0
jmp 0x1003fd7c
mov dword [ebx + 0x1c], 0x3e80
mov ecx, dword [ebx + 0x3728]
mov dword [ebx + 0x14], 0x3e80
lea eax, [ecx - 0x3e9]
neg eax
sbb eax, eax
and eax, 0xffffe0c0
add eax, 0x3e80
mov dword [ebx + 0x18], eax
cmp ecx, 0x3e8
jne 0x1003fe12
cmp dword [ebp - 0x10c], 0x32
jle 0x1003fdca
mov eax, dword [ebp - 0x118]
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x1003fdd0
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x1f40
jge 0x1003fdf1
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x14], 0x2ee0
cmp eax, 0x2ee0
jle 0x1003fdee
mov eax, 0x2ee0
mov dword [ebx + 0x1c], eax
cmp ecx, 0x1b58
jge 0x1003fe12
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x14], 0x1f40
cmp eax, 0x1f40
jle 0x1003fe0f
mov eax, 0x1f40
mov dword [ebx + 0x1c], eax
mov edx, dword [ebx + 0x94]
xor eax, eax
test edx, edx
sete al
cmp dword [ebp - 0xf4], 0
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0xd4]
lea ecx, [eax*8 - 8]
mov dword [ebx + 0x40], ecx
je 0x1003fe67
mov eax, dword [ebp - 0xe8]
cmp eax, 2
jl 0x1003fe67
shl eax, 3
sub ecx, eax
lea eax, [ecx - 1]
mov ecx, dword [ebx + 0x3728]
mov dword [ebx + 0x40], eax
cmp ecx, 0x3e9
jne 0x1003fe6d
add eax, 0xffffffec
mov dword [ebx + 0x40], eax
jmp 0x1003fe6d
mov ecx, dword [ebx + 0x3728]
test edx, edx
jne 0x1003fe94
cmp ecx, 0x3e9
jne 0x1003fed9
mov eax, dword [ebx + 0x24]
imul eax, dword [ebp - 0xc4]
mov ecx, dword [ebx + 0x40]
cdq
idiv esi
cmp ecx, eax
jl 0x1003fe8f
mov ecx, eax
mov dword [ebx + 0x40], ecx
jmp 0x1003fed9
cmp ecx, 0x3e9
jne 0x1003fed9
imul eax, dword [ebp - 0xc4], 0x32
xor ecx, ecx
push dword [ebx + 0x34]
push edx
cmp esi, eax
mov eax, dword [ebx + 0x40]
sete cl
imul eax, esi
push ecx
mov ecx, dword [ebp - 0xcc]
push ecx
cdq
idiv dword [ebp - 0xc4]
push eax
call fcn.1003d7d0
imul eax, dword [ebp - 0xc4]
add esp, 0x14
cdq
idiv esi
mov dword [ebx + 0x40], eax
cmp dword [ebp - 0x110], 0
je 0x1003ffbf
push dword [ebx + 0x90]
mov eax, 0x51eb851f
mov dword [ebp - 0xe0], 0
imul esi
fxch st(1)
mov eax, dword [ebx + 0xac]
lea ecx, [ebx + 0x3760]
sub eax, dword [ebx + 0x74]
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebx + 0x70]
sub eax, esi
imul eax, edx
lea edi, [eax*4]
mov eax, dword [ebp - 0x12c]
add ecx, edi
push dword [eax + 0x3c]
push edx
push esi
push dword [eax + 4]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push ecx
push ecx
call fcn.1003e390
push edi
lea esi, [ebx + 0x3760]
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebx + 0xac]
add esp, 0x30
imul eax, dword [ebx + 0x70]
xor ecx, ecx
test eax, eax
jle 0x1003ff94
mov edx, dword [ebp - 0xec]
fld dword [esi]
push ecx
fstp dword [esp]
call fcn.1003d5d0
mov word [edx + ecx*2], ax
add esp, 4
mov eax, dword [ebx + 0xac]
inc ecx
imul eax, dword [ebx + 0x70]
add esi, 4
cmp ecx, eax
jl 0x1003ff70
push 1
lea eax, [ebp - 0xe0]
push eax
push 0
push dword [ebx + 0xac]
lea edi, [ebx + 8]
push dword [ebp - 0xec]
push edi
push dword [ebp - 0x124]
call fcn.1004a320
add esp, 0x1c
jmp 0x1003ffc3
fstp st(0)
fstp st(0)
mov eax, dword [ebx + 0x70]
xor ecx, ecx
mov esi, dword [ebp - 0xc4]
imul eax, esi
test eax, eax
jle 0x1004007b
fld dword [0x100745ac]
fld dword [0x100745b0]
fld dword [0x100745a8]
mov edx, dword [ebp - 0xec]
mov edi, dword [ebp - 0xdc]
jmp 0x1003fffb
fxch st(2)
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp - 0xf8]
add eax, ecx
fld dword [edi + eax*4]
fmulp st(3)
fxch st(2)
fst dword [ebp - 0x110]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x10040029
fstp st(0)
fstp st(1)
fstp dword [ebp - 0x110]
jmp 0x1004003e
fstp st(1)
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x1004003c
fstp dword [ebp - 0x110]
jmp 0x1004003e
fstp st(0)
fld dword [ebp - 0x110]
fistp dword [ebp - 0xe0]
mov ax, word [ebp - 0xe0]
fld dword [0x100745a8]
fld dword [0x100745b0]
fld dword [0x100745ac]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebx + 0x70]
imul eax, esi
cmp ecx, eax
jl 0x1003fff9
fstp st(2)
lea edi, [ebx + 8]
fstp st(0)
fstp st(0)
push 0
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x178]
push eax
push esi
push dword [ebp - 0xec]
push edi
push dword [ebp - 0x124]
call fcn.1004a320
add esp, 0x1c
mov dword [ebp - 0x100], eax
test eax, eax
jne 0x10040e81
mov ecx, dword [ebx + 0x3728]
cmp ecx, 0x3e8
jne 0x100400fc
mov eax, dword [ebx + 0x50]
cmp eax, 0x1f40
jne 0x100400d4
mov edx, 0x44d
mov dword [ebp - 0xcc], edx
jmp 0x10040102
cmp eax, 0x2ee0
jne 0x100400e8
mov edx, 0x44e
mov dword [ebp - 0xcc], edx
jmp 0x10040102
cmp eax, 0x3e80
jne 0x100400fc
mov edx, 0x44f
mov dword [ebp - 0xcc], edx
jmp 0x10040102
mov edx, dword [ebp - 0xcc]
cmp dword [ebx + 0x60], 0
je 0x10040118
cmp dword [ebx + 0x466c], 0
jne 0x10040118
mov eax, 1
jmp 0x1004011a
xor eax, eax
cmp dword [ebp - 0x144], 0
mov dword [ebx + 0x48], eax
jne 0x1004015d
push dword [ebx + 0x3708]
mov eax, dword [ebx + 0x90]
push edx
cdq
idiv esi
mov dword [ebx + 0x4670], 0
push eax
push ecx
call fcn.1003e560
mov ecx, dword [ebp - 0xd8]
add esp, 0x10
mov byte [ecx - 1], al
mov eax, 1
jmp 0x10040e8b
test eax, eax
je 0x100401aa
push dword [ebx + 0x3708]
push dword [ebp - 0x10c]
push dword [ebx + 0xa0]
push dword [ebp - 0xd4]
call fcn.1003d730
mov ecx, eax
mov dword [ebp - 0x104], 0
xor eax, eax
mov dword [ebp - 0xe8], ecx
add esp, 0x10
mov dword [ebx + 0x3740], 1
test ecx, ecx
setne al
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0xcc]
mov eax, 0x15
add ecx, 0xfffffbb3
cmp ecx, 4
ja case.0x100401c0.1105
jmp dword [ecx*4 + 0x10040ea4]
mov eax, 0xd
jmp case.0x100401c0.1105
mov eax, 0x11
jmp case.0x100401c0.1105
mov eax, 0x13
mov esi, dword [ebp - 0xc8]
push eax
push 0x271c
push esi
call fcn.10048b10
push dword [ebx + 0x3708]
push 0x2718
push esi
call fcn.10048b10
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.10048b10
add esp, 0x24
cmp dword [ebx + 0x3728], 0x3e8
je 0x100402c8
push 0
push 0xfa6
push esi
call fcn.10048b10
add esp, 0xc
cmp dword [ebx + 0x4c], 0
je 0x10040237
fldz
jmp 0x1004023d
fld dword [0x10074684]
call fcn.1006caa0
push eax
push 0x2712
push esi
call fcn.10048b10
add esp, 0xc
cmp dword [ebx + 0x3728], 0x3e9
jne 0x1004028d
cmp dword [ebx + 0x94], 0
je 0x100402c8
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push esi
call fcn.10048b10
push 0
push 0xfb4
push esi
call fcn.10048b10
add esp, 0x18
jmp 0x100402c8
cmp dword [ebx + 0x94], 0
je 0x100402c8
push 1
push 0xfa6
push esi
call fcn.10048b10
push dword [ebx + 0x98]
push 0xfb4
push esi
call fcn.10048b10
push dword [ebx + 0xa0]
push 0xfa2
push esi
call fcn.10048b10
add esp, 0x24
mov edi, dword [ebx + 0x70]
mov eax, 0x51eb851f
mov ecx, edi
imul ecx, dword [ebx + 0x90]
imul ecx
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
shl esi, 2
mov eax, esi
call fcn.1006ca60
mov ecx, dword [ebx + 0x3728]
mov dword [ebp - 0x110], esp
cmp ecx, 0x3e8
je 0x10040350
mov eax, dword [ebx + 0x372c]
cmp ecx, eax
je 0x10040350
test eax, eax
jle 0x10040350
mov ecx, dword [ebx + 0xac]
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
push esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
sub ecx, dword [ebp - 0xf8]
imul ecx, edi
add ecx, 0xdd8
lea eax, [ebx + ecx*4]
push eax
push dword [ebp - 0x110]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [ebx + 0xac]
mov eax, edx
mov esi, dword [ebp - 0xc4]
sub eax, esi
mov edi, dword [ebp - 0xf8]
sub eax, edi
mov ecx, dword [ebx + 0x70]
imul eax, ecx
test eax, eax
jle 0x100403c8
imul ecx, esi
shl eax, 2
push eax
add ecx, 0xdd8
lea eax, [ebx + ecx*4]
push eax
lea eax, [ebx + 0x3760]
push eax
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebx + 0x70]
lea edx, [esi + edi]
imul eax, edx
mov edi, dword [ebp - 0xdc]
shl eax, 2
push eax
mov eax, dword [ebx + 0xac]
sub eax, esi
sub eax, dword [ebp - 0xf8]
imul eax, dword [ebx + 0x70]
push edi
add eax, 0xdd8
lea eax, [ebx + eax*4]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0x18
jmp 0x100403f3
mov eax, ecx
imul eax, edx
shl eax, 2
push eax
mov eax, esi
sub eax, edx
add eax, edi
mov edi, dword [ebp - 0xdc]
imul eax, ecx
lea eax, [edi + eax*4]
push eax
lea eax, [ebx + 0x3760]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
fld dword [ebx + 0x3714]
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x10040417
fld dword [ebp - 0xf0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x1004044d
fstp st(1)
jmp 0x1004041f
fstp st(0)
fld dword [ebp - 0xf0]
push dword [ebx + 0x90]
mov eax, dword [ebp - 0x12c]
push dword [eax + 0x3c]
push dword [ebx + 0x70]
push esi
push dword [eax + 4]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push edi
push edi
call fcn.1003e390
fld1
add esp, 0x24
jmp 0x10040451
fstp st(2)
fstp st(1)
cmp dword [ebx + 0x3728], 0x3e9
fld dword [ebp - 0xf0]
fstp dword [ebx + 0x3714]
jne 0x10040472
cmp dword [ebx + 0x3708], 1
jne 0x10040497
mov eax, dword [ebp - 0x120]
xor ecx, ecx
add eax, 0xffffa240
sets cl
dec ecx
and ecx, eax
add ecx, ecx
cmp ecx, 0x4000
jle 0x10040494
mov ecx, 0x4000
mov dword [ebx + 0x5c], ecx
cmp dword [ebx + 0x3748], 0
jne 0x100405b6
cmp dword [ebx + 0x70], 2
jne 0x100405b6
movzx edi, word [ebx + 0x370c]
mov eax, 0x4000
cmp di, ax
jl 0x100404c8
cmp dword [ebx + 0x5c], eax
jge 0x100405b6
mov eax, 0xbb80
mov ecx, dword [ebp - 0x12c]
cdq
idiv dword [ebx + 0x90]
mov esi, dword [ecx + 0x3c]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 4]
cdq
idiv dword [ebp - 0xd0]
movsx ecx, di
xor edi, edi
mov dword [ebp - 0xe0], ecx
mov edx, eax
fild dword [ebp - 0xe0]
fld dword [0x10074668]
fmul st(1), st(0)
fld st(2)
fsubrp st(2)
fimul dword [ebx + 0x5c]
fsubr st(2)
test edx, edx
jle 0x10040568
mov eax, dword [ebp - 0xd0]
mov edi, edx
fld dword [0x1007467c]
lea ecx, [eax*4]
mov eax, dword [ebp - 0xdc]
fld dword [esi]
add esi, ecx
fmul st(0), st(0)
fld dword [eax]
fld dword [eax + 4]
fld st(6)
fsub st(3)
fmul st(6)
fxch st(3)
fmul st(5)
faddp st(3)
fld st(1)
fsub st(1)
fmul st(4)
fmulp st(3)
fxch st(1)
fsub st(2)
fstp dword [eax]
faddp st(1)
fstp dword [eax + 4]
add eax, 8
sub edx, 1
jne 0x10040530
fstp st(2)
fstp st(2)
jmp 0x10040572
fstp st(1)
fstp st(1)
fld dword [0x1007467c]
mov esi, dword [ebp - 0xc4]
cmp edi, esi
jge 0x100405a9
mov eax, dword [ebp - 0xdc]
mov ecx, esi
sub ecx, edi
lea eax, [eax + edi*8]
fld dword [eax]
fld dword [eax + 4]
fld st(1)
fsub st(1)
fmul st(3)
fmul st(4)
fsub st(2), st(0)
fxch st(2)
fstp dword [eax]
faddp st(1)
fstp dword [eax + 4]
add eax, 8
sub ecx, 1
jne 0x10040589
mov ax, word [ebx + 0x5c]
fstp st(1)
mov word [ebx + 0x370c], ax
mov edx, dword [ebx + 0x3728]
fstp st(0)
mov esi, dword [ebp - 0xd4]
cmp edx, 0x3ea
je 0x10040724
bsr eax, dword [ebp - 0x15c]
xor ecx, ecx
cmp edx, 0x3e9
mov dword [ebp - 0xe0], eax
setne cl
dec ecx
and ecx, 0x14
sub ecx, eax
mov eax, dword [ebp - 0x164]
add eax, 0x10
add ecx, eax
lea eax, [esi*8 - 8]
cmp ecx, eax
jg 0x10040724
cmp edx, 0x3e9
jne 0x10040627
push 0xc
push dword [ebp - 0xf4]
lea eax, [ebp - 0x178]
push eax
call fcn.10049c60
add esp, 0xc
cmp dword [ebp - 0xf4], 0
je 0x1004072e
push 1
push dword [ebp - 0x104]
lea eax, [ebp - 0x178]
push eax
call fcn.10049c60
bsr eax, dword [ebp - 0x15c]
mov edx, dword [ebx + 0x3728]
add esp, 0xc
mov dword [ebp - 0xe0], eax
mov ecx, esi
mov eax, dword [ebp - 0x164]
sub eax, dword [ebp - 0xe0]
cmp edx, 0x3e9
jne 0x10040679
add eax, 0x11
jmp 0x1004067c
add eax, 6
sar eax, 3
sub ecx, eax
mov eax, dword [ebp - 0xe8]
dec ecx
cmp ecx, eax
jge 0x10040694
mov eax, ecx
mov dword [ebp - 0xe8], eax
cmp eax, 2
jl 0x100406a7
cmp eax, 0x101
jle 0x100406b2
mov eax, 0x101
jmp 0x100406ac
mov eax, 2
mov dword [ebp - 0xe8], eax
cmp edx, 0x3e9
jne 0x100406d2
add eax, 0xfffffffe
push 0x100
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.1004a150
add esp, 0xc
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebx + 0x3728]
lea edi, [eax - 0x3ea]
neg edi
sbb edi, edi
and edi, 0x11
cmp eax, 0x3e8
jne 0x10040742
bsr eax, dword [ebp - 0x15c]
mov esi, dword [ebp - 0x164]
sub esi, eax
mov dword [ebp - 0xe0], eax
add esi, 6
lea eax, [ebp - 0x178]
sar esi, 3
push eax
mov dword [ebp - 0x100], esi
call fcn.10049da0
add esp, 4
jmp 0x10040755
mov dword [ebp - 0xf4], 0
xor ecx, ecx
mov dword [ebx + 0x3740], 0
mov dword [ebp - 0xe8], ecx
jmp 0x100406d8
sub esi, ecx
lea eax, [ebp - 0x178]
dec esi
push esi
push eax
call fcn.1004a120
add esp, 8
cmp dword [ebp - 0xf4], 0
jne 0x1004076a
cmp dword [ebx + 0x3728], 0x3e8
je 0x10040781
lea eax, [ebp - 0x5c]
push eax
push 0x2726
push dword [ebp - 0xc8]
call fcn.10048b10
add esp, 0xc
cmp dword [ebx + 0x3728], 0x3e9
jne 0x100407a8
mov eax, dword [ebx + 0x64]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0xe4]
push eax
jmp 0x100407aa
push 0
push 0x272c
push dword [ebp - 0xc8]
call fcn.10048b10
add esp, 0xc
cmp dword [ebp - 0xf4], 0
je 0x1004087a
cmp dword [ebp - 0x104], 0
je 0x1004087a
push 0
push 0x271a
push dword [ebp - 0xc8]
call fcn.10048b10
push 0
push 0xfa6
push dword [ebp - 0xc8]
call fcn.10048b10
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xc8]
call fcn.10048b10
mov eax, dword [ebp - 0xd8]
push 0
push dword [ebp - 0xe8]
add eax, esi
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp - 0xdc]
push dword [ebp - 0xc8]
call fcn.10045c00
add esp, 0x3c
test eax, eax
js 0x10040e81
lea eax, [ebp - 0x130]
push eax
push 0xfbf
push dword [ebp - 0xc8]
call fcn.10048b10
push 0xfbc
push dword [ebp - 0xc8]
call fcn.10048b10
add esp, 0x14
push edi
mov edi, dword [ebp - 0xc8]
push 0x271a
push edi
call fcn.10048b10
mov ecx, dword [ebx + 0x3728]
add esp, 0xc
cmp ecx, 0x3e8
je 0x100409f6
mov eax, dword [ebx + 0x372c]
cmp ecx, eax
je 0x100408f7
test eax, eax
jle 0x100408f7
push 0xfbc
push edi
call fcn.10048b10
push 0
push 2
lea eax, [ebp - 0xf8]
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp - 0x110]
push edi
call fcn.10045c00
push 0
push 0x2712
push edi
call fcn.10048b10
add esp, 0x2c
bsr eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x164]
mov edi, dword [ebp - 0xf4]
sub ecx, eax
mov dword [ebp - 0xe0], eax
dec ecx
lea eax, [esi*8]
cmp ecx, eax
jg 0x100409fc
test edi, edi
je 0x10040961
cmp dword [ebp - 0x104], 0
je 0x10040961
cmp dword [ebx + 0x3728], 0x3e9
jne 0x10040961
cmp dword [ebx + 0x94], 0
je 0x10040961
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push dword [ebp - 0xc8]
call fcn.10048b10
add esp, 0xc
push dword [ebx + 0x94]
push 0xfa6
push dword [ebp - 0xc8]
call fcn.10048b10
lea eax, [ebp - 0x178]
push eax
push esi
push 0
push dword [ebp - 0xc4]
push dword [ebp - 0xdc]
push dword [ebp - 0xc8]
call fcn.10045c00
mov ecx, eax
add esp, 0x24
mov dword [ebp - 0x100], ecx
test ecx, ecx
js 0x10040e81
test edi, edi
je 0x10040b4e
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x10040a02
cmp dword [ebx + 0x3728], 0x3e9
jne 0x10040a02
cmp dword [ebx + 0x94], 0
je 0x10040a02
mov edx, dword [ebp - 0xd8]
push dword [ebp - 0xe8]
lea eax, [esi + edx]
push eax
lea eax, [edx + ecx]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
add esi, dword [ebp - 0xe8]
jmp 0x100409fc
mov edi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x104]
test edi, edi
je 0x10040b4e
test eax, eax
jne 0x10040b4e
mov ecx, dword [ebx + 0x90]
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 - 0xc8]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xe0], eax
call fcn.10048b10
push 0
push 0x271a
push dword [ebp - 0xc8]
call fcn.10048b10
push 0
push 0x2712
push dword [ebp - 0xc8]
call fcn.10048b10
push 0
push 0xfa6
push dword [ebp - 0xc8]
call fcn.10048b10
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xc8]
call fcn.10048b10
add esp, 0x38
cmp dword [ebx + 0x3728], 0x3e9
jne 0x10040abf
mov eax, dword [ebp - 0x100]
mov esi, eax
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.1004a120
add esp, 8
mov ecx, dword [ebp - 0xe0]
lea eax, [ebp - 0xf8]
push 0
push 2
push eax
mov eax, dword [ebp - 0xc4]
sub eax, ecx
sub eax, edi
imul eax, dword [ebx + 0x70]
push ecx
mov ecx, dword [ebp - 0xdc]
lea eax, [ecx + eax*4]
push eax
push dword [ebp - 0xc8]
call fcn.10045c00
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xdc]
add eax, esi
mov esi, dword [ebp - 0xc8]
push 0
push dword [ebp - 0xe8]
push eax
mov eax, dword [ebp - 0xc4]
sub eax, edi
imul eax, dword [ebx + 0x70]
push edi
lea eax, [ecx + eax*4]
push eax
push esi
call fcn.10045c00
add esp, 0x30
test eax, eax
js 0x10040e81
lea eax, [ebp - 0x130]
push eax
push 0xfbf
push esi
call fcn.10048b10
mov edi, dword [ebp - 0xf4]
add esp, 0xc
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xc4]
push dword [ebx + 0x3708]
mov esi, dword [ebp - 0xcc]
dec dword [ebp - 0xd8]
push esi
push eax
push dword [ebx + 0x3728]
call fcn.1003e560
mov ecx, dword [ebp - 0xd8]
add esp, 0x10
mov byte [ecx], al
mov eax, dword [ebp - 0x15c]
xor eax, dword [ebp - 0x130]
cmp dword [ebp - 0x134], 0
mov dword [ebx + 0x4670], eax
je 0x10040bac
mov dword [ebx + 0x372c], 0x3ea
jmp 0x10040bb8
mov eax, dword [ebx + 0x3728]
mov dword [ebx + 0x372c], eax
cmp dword [ebx + 0xb8], 0
mov eax, dword [ebx + 0x3708]
mov edx, dword [ebp - 0xc4]
mov dword [ebx + 0x3730], eax
mov dword [ebx + 0x3734], edx
mov dword [ebx + 0x3744], 0
je 0x10040c6a
cmp dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x114]
jne 0x10040bf7
test eax, eax
je 0x10040c6a
fld dword [ebx + 0x4668]
mov ecx, dword [ebx + 0xb4]
fstp dword [ebp - 0x11c]
test eax, eax
jne 0x10040cec
fld dword [0x1007ffac]
fcomp dword [ebp - 0x3c]
fnstsw ax
test ah, 0x41
jne 0x10040c60
imul edx, dword [ebx + 0x70]
and ecx, 7
mov eax, dword [ebp - 0x108]
push edx
push eax
push eax
mov eax, dword [ecx*4 + 0x1007506c]
mov dword [ebp - 0xe0], edx
call eax
fidiv dword [ebp - 0xe0]
add esp, 0xc
fmul dword [0x10074698]
fcomp dword [ebp - 0x11c]
fnstsw ax
test ah, 0x41
jnp 0x10040cec
mov dword [ebx + 0x4664], 0
bsr eax, dword [ebp - 0x15c]
mov esi, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x164]
sub ecx, eax
mov dword [ebp - 0xe0], eax
dec ecx
lea eax, [esi*8 - 8]
cmp ecx, eax
jle 0x10040d54
cmp esi, 2
jl 0x1003e80b
mov eax, dword [ebp - 0x148]
mov byte [eax], 0
mov eax, 1
mov dword [ebx + 0x4670], 0
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
inc edx
add eax, edx
cmp dword [ebx + 0x94], 0
jne 0x10040e8b
push esi
push eax
push ecx
call fcn.1004b490
add esp, 0xc
test eax, eax
jne 0x10040e81
mov eax, esi
jmp 0x10040e8b
inc dword [ebx + 0x4664]
mov eax, dword [ebx + 0x4664]
cmp eax, 0xa
jle 0x10040c6a
cmp eax, 0x1e
jle 0x10040d15
mov dword [ebx + 0x4664], 0xa
jmp 0x10040c6a
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xc4]
push dword [ebx + 0x3708]
mov dword [ebx + 0x4670], 0
push esi
push eax
push dword [ebx + 0x3728]
call fcn.1003e560
mov ecx, dword [ebp - 0xd8]
add esp, 0x10
mov byte [ecx], al
mov eax, 1
jmp 0x10040e8b
cmp dword [ebx + 0x3728], 0x3e8
mov eax, dword [ebp - 0x100]
jne 0x10040cb6
test edi, edi
jne 0x10040cb6
cmp eax, 2
jle 0x10040cb6
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + eax], 0
jne 0x10040cbc
dec eax
cmp eax, 2
jg 0x10040d81
jmp 0x10040cbc
cmp edi, 0x10
jg 0x1003ebd4
cmp dword [ebp + 0x18], 1
je 0x10040dd4
cmp ecx, 0x3e8
jne 0x10040db2
cmp edi, 0xa
jne 0x10040dd4
mov eax, 0x32
mov dword [ebp - 0x114], 3
cdq
idiv edi
mov edi, 0x32
mov dword [ebp - 0xd0], eax
jmp 0x1003ebd4
xor eax, eax
mov ecx, 0x3e8
cmp edi, 0xc
setle al
sub edi, 0xc
neg edi
mov dword [ebp - 0x114], eax
sbb edi, edi
and edi, 0xfffffff7
add edi, 0x19
jmp 0x1003ebe0
cmp ecx, 0x3ea
jne 0x10040e0e
cmp esi, 0x44e
jne 0x10040e23
lea esi, [ecx + 0x63]
jmp 0x10040e23
cmp ecx, 0x3e9
jne 0x10040e23
cmp esi, 0x450
jg 0x10040e23
mov esi, 0x450
push dword [ebx + 0x3708]
push esi
push edi
push ecx
call fcn.1003e560
mov edx, dword [ebp - 0xd8]
add esp, 0x10
mov ecx, dword [ebp - 0x114]
or al, cl
mov esi, dword [ebp - 0xd4]
mov byte [edx], al
xor eax, eax
cmp ecx, 1
setg al
inc eax
cmp esi, eax
jg 0x10040e59
mov esi, eax
cmp ecx, 3
jne 0x10040e67
mov ecx, dword [ebp - 0xd0]
mov byte [edx + 1], cl
cmp dword [ebx + 0x94], 0
jne 0x10040e8b
push esi
push eax
push edx
call fcn.1004b490
add esp, 0xc
test eax, eax
mov eax, esi
je 0x10040e8b
mov eax, 0xfffffffd
jmp 0x10040e8b
or eax, 0xffffffff
lea esp, [ebp - 0x190]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1006bfcb
mov esp, ebp
pop ebp
ret