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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0x68], edx
mov ebx, ecx
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esi + 0xb8], eax
xor eax, eax
dec eax
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xa0], xmm0
movdqa xmmword [esi + 0x90], xmm0
mov edi, dword [ecx + 0x920]
mov ecx, dword [ecx + 0x918]
add ecx, edi
shl ecx, 2
mov eax, ecx
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
mov edx, 0xff
push ecx
push edx
mov dword [esi + 0x1c], eax
push eax
call fcn.10132b90
add esp, 0xc
lea ecx, [edi + edi]
lea eax, [edi + edi]
add eax, 3
and eax, 0xfffffffc
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push ecx
mov ecx, 0xff
push ecx
mov dword [esi + 0x10], eax
push eax
call fcn.10132b90
add esp, 0xc
mov eax, dword [ebx + 0x1094]
sar eax, 6
mov dword [esi + 0x88], eax
mov eax, dword [ebx + 0x1098]
mov dword [esi + 0x58], eax
sar eax, 6
mov dword [esi + 0x40], eax
mov dword [esi + 0x8c], eax
cmp dword [ebx + 0x948], 0
je 0x10290474
pxor xmm0, xmm0
movdqu xmmword [ebx + 0x106a], xmm0
movdqu xmmword [ebx + 0x105a], xmm0
lea eax, [ebx + 4]
mov dword [esi + 0x18], ebx
lea edi, [esi + 0x70]
lea ecx, [esi + 0x74]
lea edx, [esi + 0x7c]
mov ebx, dword [esi + 0x18]
push dword [ebx + 0x914]
mov ebx, dword [esi + 0x18]
push dword [ebx + 0x91c]
lea ebx, [esi + 0x88]
push ebx
push eax
lea ebx, [esi + 0x78]
push ebx
push edi
call fcn.10291010
add esp, 0x18
mov cl, byte [ebx]
mov ebx, dword [esi + 0x18]
lea eax, [esi + 0x74]
mov edx, dword [eax]
sar edx, cl
mov edi, dword [edi]
lea eax, [esi + 0x7c]
mov cl, byte [eax]
sar edi, cl
mov eax, dword [ebx + 0x10a0]
cmp edx, edi
jge 0x102904d4
mov ecx, eax
dec ecx
mov eax, dword [ebx + 0x10a4]
jmp 0x102904da
mov ecx, dword [ebx + 0x10a4]
imul eax, ecx
cmp eax, 0x81
mov ecx, 0x80
cmovge ecx, eax
mov dword [esi + 0x2c], ecx
mov eax, dword [ebx + 0x1040]
xor ecx, ecx
inc ecx
test eax, eax
cmovle ecx, eax
cmp dword [ebx + 0x1044], 2
mov eax, 0x102fa948
mov edx, 0x102fa94c
cmove edx, eax
movzx eax, word [ebx + 0x1084]
mov dword [esi + 0x20], eax
movsx eax, word [edx + ecx*2]
mov dword [esi + 0xc], eax
movsx eax, word [ecx + ecx + 0x102fa944]
mov dword [esi + 0x54], eax
lea edi, [ebx + 0x105a]
push 0xfd71
push dword [ebx + 0x924]
push edi
call fcn.10294000
add esp, 0xc
mov eax, dword [ebx + 0x924]
mov dword [esi + 8], eax
add eax, eax
lea ecx, [esi + 0x90]
push eax
push edi
push ecx
call fcn.10132610
add esp, 0xc
cmp dword [ebx + 0x1040], 0
je 0x10290d71
mov edi, dword [esi + 8]
mov eax, dword [ebx + 0x104c]
sar eax, 7
inc eax
sar eax, 1
mov edx, dword [ebx + 0x920]
mov dword [esi + 0x3c], eax
add eax, edi
mov ecx, edx
sub ecx, eax
neg eax
add eax, edx
add eax, 0xfffffffe
mov dword [esi + 0x24], eax
mov eax, dword [ebx + 0x1080]
mov dword [esi + 0x14], eax
mov dword [esi + 8], edx
mov eax, edx
cmp ecx, 2
jg 0x102905cc
push 0x126
push 0x102fa950
push str.assertion_failed:_idx___0
call fcn.1028ab20
add esp, 0xc
mov eax, dword [ebx + 0x920]
mov edi, dword [ebx + 0x924]
mov ecx, edi
mov edi, dword [esi + 0x24]
sub eax, edi
lea edx, [ebx + edi*2]
add edx, 0x544
mov dword [esi + 4], edx
mov edx, dword [esi + 0x10]
lea edx, [edx + edi*2]
push dword [ebp + 0xc]
push ecx
push eax
lea eax, [esi + 0x90]
push eax
push dword [esi + 4]
push edx
call fcn.1028abb0
add esp, 0x18
mov ebx, dword [ebx + 0x1098]
mov edi, ebx
neg edi
cmovs edi, ebx
test edi, edi
mov dword [esi + 0x28], edi
je 0x10290dcc
bsr eax, edi
xor eax, 0x1f
mov dword [esi + 4], eax
mov ecx, eax
dec cl
shl ebx, cl
mov ecx, ebx
sar ecx, 0x10
mov eax, 0x1fffffff
xor edx, edx
idiv ecx
movsx edx, ax
imul ecx, edx
mov edi, 0xffff
and ebx, edi
imul ebx, edx
sar ebx, 0x10
add ebx, ecx
shl ebx, 3
neg ebx
mov ecx, ebx
sar ecx, 0x10
imul ecx, edx
mov dword [esi + 0x30], ebx
mov edi, 0xffff
and ebx, edi
imul ebx, edx
mov edx, eax
sar eax, 0xf
inc eax
sar eax, 1
imul eax, dword [esi + 0x30]
shl edx, 0x10
add eax, edx
add eax, ecx
sar ebx, 0x10
add eax, ebx
mov ecx, 0xffff
cmp dword [esi + 0x28], ecx
ja 0x102906a5
mov ecx, dword [esi + 4]
add cl, 0xf0
mov edx, 0x80000000
sar edx, cl
mov edi, 0x7fffffff
shr edi, cl
cmp eax, edx
cmovg edx, eax
cmp eax, edi
cmovg edx, edi
shl edx, cl
jmp 0x102906ae
mov cl, 0x10
sub cl, byte [esi + 4]
sar eax, cl
mov edx, eax
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x24]
mov ecx, dword [eax + 0x920]
mov eax, dword [eax + 0x924]
mov dword [esi + 0x38], eax
add edi, eax
mov eax, ecx
cmp edi, ecx
mov ebx, dword [esi + 0x1c]
jge 0x1029070e
mov ecx, 0x3fffffff
cmp edx, ecx
cmovl ecx, edx
movzx edx, cx
mov dword [esi + 0x24], edx
sar ecx, 0x10
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x10]
movsx edx, word [ecx + edi*2]
mov ecx, ebx
mov ebx, eax
mov eax, edi
mov edi, dword [esi + 4]
imul edi, edx
imul edx, dword [esi + 0x24]
sar edx, 0x10
add edx, edi
mov edi, eax
mov eax, ebx
mov ebx, ecx
mov dword [ecx + edi*4], edx
inc edi
cmp edi, eax
jl 0x102906e4
mov dword [esi + 0x34], eax
mov ebx, dword [esi + 0x18]
mov eax, dword [ebx + 0x914]
mov dword [esi + 0x50], eax
test eax, eax
jle 0x10290dd6
mov eax, dword [esi + 0x2c]
lea eax, [ebx + eax*4]
add eax, 0xfffffe04
mov dword [esi + 0x60], eax
mov eax, dword [ebx + 0x91c]
mov dword [esi + 0x4c], eax
movsx eax, word [esi + 0xc]
mov dword [esi + 0x48], eax
mov edx, ebx
movsx eax, word [ebx + 0x90c]
shl eax, 9
lea eax, [eax + eax*8]
mov dword [esi + 0x44], eax
xor eax, eax
mov ebx, dword [esi + 0x20]
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x4c]
test eax, eax
mov dword [esi + 0x14], edi
jle 0x1029097c
movsx edi, word [edx + 0x1050]
mov dword [esi + 0x28], edi
movsx edi, word [edx + 0x1052]
mov dword [esi + 0x30], edi
shl ecx, 2
mov edi, dword [esi + 0x1c]
sub edi, ecx
mov dword [esi + 0x10], edi
movsx ecx, word [edx + 0x1054]
mov dword [esi + 0xc], ecx
movsx ebx, bx
mov dword [esi + 0x20], ebx
movsx ecx, word [edx + 0x1056]
mov dword [esi + 4], ecx
movsx ecx, word [edx + 0x1058]
mov dword [esi + 0x2c], ecx
mov edx, eax
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov dword [esi + 0x24], edx
mov dword [esi + 8], eax
mov dword [esi + 0x14], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + eax*4 + 8]
mov edi, edx
sar edi, 0x10
mov ecx, dword [esi + 0x28]
imul edi, ecx
mov eax, 0xffff
and edx, eax
imul edx, ecx
sar edx, 0x10
add edx, edi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov ebx, dword [ecx + eax*4 + 4]
mov edi, ebx
sar edi, 0x10
mov ecx, dword [esi + 0x30]
imul edi, ecx
add edi, edx
mov eax, 0xffff
and ebx, eax
imul ebx, ecx
sar ebx, 0x10
add ebx, edi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + eax*4]
mov edi, edx
sar edi, 0x10
mov ecx, dword [esi + 0xc]
imul edi, ecx
add edi, ebx
mov eax, 0xffff
and edx, eax
imul edx, ecx
sar edx, 0x10
add edx, edi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov ebx, dword [ecx + eax*4 - 4]
mov edi, ebx
sar edi, 0x10
mov ecx, dword [esi + 4]
imul edi, ecx
add edi, edx
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov edx, dword [edx + eax*4 - 8]
mov eax, 0xffff
and ebx, eax
imul ebx, ecx
sar ebx, 0x10
add ebx, edi
mov edi, edx
sar edi, 0x10
mov ecx, dword [esi + 0x2c]
imul edi, ecx
add edi, ebx
and edx, eax
imul edx, ecx
mov ecx, dword [esi + 0x14]
sar edx, 0x10
add edx, edi
imul ecx, ecx, 0xbb38435
add ecx, 0x3619636b
mov edi, ecx
shr edi, 0x19
mov eax, dword [esi + 0x60]
mov ebx, dword [eax + edi*4]
mov edi, ebx
sar edi, 0x10
mov eax, dword [esi + 0x20]
imul edi, eax
add edi, edx
mov edx, 0xffff
and ebx, edx
imul ebx, eax
sar ebx, 0x10
add ebx, edi
lea edx, [ebx*4 + 8]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x1c]
mov dword [edi + eax*4], edx
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 8]
inc eax
dec edx
jne 0x102907bc
mov dword [esi + 8], eax
mov edx, dword [esi + 0x18]
mov dword [esi + 0x14], ecx
mov ecx, dword [esi + 0x2c]
mov edi, dword [esi + 0x30]
mov eax, dword [esi + 0x54]
mov ebx, dword [esi + 0x28]
imul ebx, eax
shr ebx, 0xf
mov word [edx + 0x1050], bx
imul edi, eax
shr edi, 0xf
mov word [edx + 0x1052], di
mov edi, dword [esi + 0xc]
imul edi, eax
shr edi, 0xf
mov word [edx + 0x1054], di
mov edi, dword [esi + 4]
imul edi, eax
shr edi, 0xf
mov word [edx + 0x1056], di
imul ecx, eax
shr ecx, 0xf
mov word [edx + 0x1058], cx
mov eax, dword [edx + 0x104c]
mov ecx, eax
sar ecx, 0x10
imul ecx, ecx, 0x28f
add ecx, eax
movzx eax, ax
imul eax, eax, 0x28f
shr eax, 0x10
add ecx, eax
mov ebx, dword [esi + 0x20]
imul ebx, dword [esi + 0x48]
shr ebx, 0xf
mov eax, dword [esi + 0x44]
cmp ecx, eax
cmovge ecx, eax
mov dword [edx + 0x104c], ecx
sar ecx, 7
inc ecx
sar ecx, 1
mov eax, dword [esi + 0x5c]
inc eax
cmp eax, dword [esi + 0x50]
mov edi, dword [esi + 0x14]
jne 0x10290760
jmp 0x102909b3
movsx eax, word [edx + 0x1050]
mov dword [esi + 0x28], eax
movsx edi, word [edx + 0x1052]
movsx eax, word [edx + 0x1054]
mov dword [esi + 0xc], eax
movsx eax, word [edx + 0x1056]
mov dword [esi + 4], eax
movsx ebx, bx
mov dword [esi + 0x20], ebx
movsx ecx, word [edx + 0x1058]
jmp 0x102908de
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x20], ebx
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
mov ebx, edx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x14], edi
movups xmm0, xmmword [ebx + 0x534]
movups xmmword [edx + ecx*4 - 0x10], xmm0
movups xmm0, xmmword [ebx + 0x524]
movups xmmword [edx + ecx*4 - 0x20], xmm0
movups xmm0, xmmword [ebx + 0x504]
movups xmm1, xmmword [ebx + 0x514]
movups xmmword [edx + ecx*4 - 0x30], xmm1
movups xmmword [edx + ecx*4 - 0x40], xmm0
cmp eax, 9
jg 0x10290a19
push 0x15c
push 0x102fa950
push str.assertion_failed:_psDec__LPC_order___10
call fcn.1028ab20
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x1c]
add esp, 0xc
lea eax, [edx + ecx*4]
add eax, 0xffffffc0
mov dword [esi + 4], eax
lea eax, [ebx + 0x504]
mov dword [esi + 0x64], eax
mov eax, dword [ebx + 0x918]
test eax, eax
jle 0x10290d10
lea ecx, [edx + ecx*4]
add ecx, 0xffffffd4
lea edx, [esi + 0xa4]
movsx eax, word [esi + 0x40]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x58]
sar eax, 0x15
inc eax
sar eax, 1
mov dword [esi + 0x58], eax
movsx eax, word [edx - 0x14]
mov dword [esi + 0x5c], eax
movsx eax, word [edx - 0x12]
mov dword [esi + 0x54], eax
movsx eax, word [edx - 0x10]
mov dword [esi + 0x50], eax
movsx eax, word [edx - 0xe]
mov dword [esi + 0x4c], eax
movsx eax, word [edx - 0xc]
mov dword [esi + 0x48], eax
movsx eax, word [edx - 0xa]
mov dword [esi + 0x44], eax
movsx eax, word [edx - 8]
mov dword [esi + 0x34], eax
movsx eax, word [edx - 6]
mov dword [esi + 0x38], eax
movsx eax, word [edx - 4]
mov dword [esi + 0x40], eax
movsx eax, word [edx - 2]
mov dword [esi + 0x6c], eax
mov edx, dword [ecx + 0x28]
mov eax, dword [ecx + 0x20]
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x2c], eax
xor edi, edi
mov dword [esi + 0x10], ecx
mov ecx, dword [ebx + 0x924]
mov dword [esi + 8], ecx
sar ecx, 1
mov eax, edx
sar eax, 0x10
mov ebx, dword [esi + 0x5c]
imul eax, ebx
add eax, ecx
mov ecx, 0xffff
and edx, ecx
imul edx, ebx
sar edx, 0x10
add edx, eax
mov ecx, dword [esi + 0x28]
mov eax, edi
mov dword [esi + 0xc], edi
mov edi, dword [esi + 4]
mov edi, dword [edi + eax*4 + 0x38]
mov eax, edi
sar eax, 0x10
mov ebx, dword [esi + 0x54]
imul eax, ebx
add eax, edx
mov dword [esi + 0x28], edi
mov edx, edi
mov edi, 0xffff
and edx, edi
imul edx, ebx
sar edx, 0x10
add edx, eax
mov eax, ecx
sar eax, 0x10
mov ebx, dword [esi + 0x50]
imul eax, ebx
add eax, edx
and ecx, edi
imul ecx, ebx
sar ecx, 0x10
add ecx, eax
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov edi, dword [eax + edi*4 + 0x30]
mov eax, edi
sar eax, 0x10
mov ebx, dword [esi + 0x4c]
imul eax, ebx
add eax, ecx
mov dword [esi + 0x30], edi
mov ecx, edi
mov edi, 0xffff
and ecx, edi
imul ecx, ebx
sar ecx, 0x10
add ecx, eax
mov eax, edx
sar eax, 0x10
mov ebx, dword [esi + 0x48]
imul eax, ebx
add eax, ecx
and edx, edi
imul edx, ebx
sar edx, 0x10
add edx, eax
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov edi, dword [eax + edi*4 + 0x28]
mov eax, edi
sar eax, 0x10
mov ebx, dword [esi + 0x44]
imul eax, ebx
add eax, edx
mov dword [esi + 0x2c], edi
mov edx, edi
mov edi, 0xffff
and edx, edi
imul edx, ebx
sar edx, 0x10
add edx, eax
mov eax, ecx
sar eax, 0x10
mov ebx, dword [esi + 0x34]
imul eax, ebx
add eax, edx
and ecx, edi
imul ecx, ebx
sar ecx, 0x10
add ecx, eax
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov edi, dword [eax + edi*4 + 0x20]
mov eax, edi
sar eax, 0x10
mov ebx, dword [esi + 0x38]
imul eax, ebx
add eax, ecx
mov dword [esi + 0x1c], edi
mov ecx, edi
mov edi, 0xffff
and ecx, edi
imul ecx, ebx
sar ecx, 0x10
add ecx, eax
mov eax, edx
sar eax, 0x10
mov ebx, dword [esi + 0x40]
imul eax, ebx
add eax, ecx
and edx, edi
imul edx, ebx
sar edx, 0x10
add edx, eax
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov ecx, dword [ecx + eax*4 + 0x18]
mov eax, ecx
sar eax, 0x10
mov edi, dword [esi + 0x6c]
imul eax, edi
add eax, edx
mov edx, 0xffff
and ecx, edx
imul ecx, edi
sar ecx, 0x10
add ecx, eax
mov eax, dword [esi + 8]
cmp eax, 0xb
jl 0x10290c64
mov edx, 0xa
sub edx, eax
mov dword [esi + 0x24], edx
xor eax, eax
lea edi, [esi + 0xa4]
mov edx, dword [esi + 0x10]
mov ebx, dword [edx + eax*4]
mov dword [esi + 8], ebx
sar ebx, 0x10
movsx edx, word [edi]
imul ebx, edx
add ebx, ecx
movzx ecx, word [esi + 8]
imul ecx, edx
sar ecx, 0x10
add ecx, ebx
dec eax
add edi, 2
cmp dword [esi + 0x24], eax
jne 0x10290c3b
cmp ecx, 0xf8000001
mov eax, 0xf8000000
cmovl ecx, eax
mov eax, 0x7ffffff
cmp ecx, eax
cmovge ecx, eax
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov eax, dword [eax + edx*4 + 0x40]
shl ecx, 4
mov edx, eax
add edx, ecx
js 0x10290d04
test eax, ecx
mov eax, 0x80000000
cmovs edx, eax
mov ebx, dword [esi + 0x18]
mov ecx, edx
sar ecx, 0x10
mov edi, dword [esi + 0x60]
imul ecx, edi
mov eax, edx
imul eax, dword [esi + 0x58]
add eax, ecx
movzx ecx, dx
imul ecx, edi
sar ecx, 0x10
add eax, ecx
mov ecx, eax
shr ecx, 7
inc ecx
shr ecx, 1
cmp eax, 0xff7fff80
mov edi, 0x8000
cmovl ecx, edi
cmp eax, 0x7fff80
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 4]
mov dword [eax + edi*4 + 0x40], edx
mov eax, 0x7fff
cmovge ecx, eax
mov eax, dword [ebp + 8]
mov word [eax + edi*2], cx
inc edi
mov eax, dword [ebx + 0x918]
mov ecx, dword [esi + 0x10]
add ecx, 4
cmp edi, eax
jl 0x10290abb
jmp 0x10290d10
or eax, ecx
mov eax, 0x7fffffff
cmovns edx, eax
jmp 0x10290c99
mov edx, dword [esi + 4]
movups xmm0, xmmword [edx + eax*4 + 0x30]
mov ecx, dword [esi + 0x64]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [edx + eax*4 + 0x20]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [edx + eax*4]
movups xmm1, xmmword [edx + eax*4 + 0x10]
movups xmmword [ecx + 0x10], xmm1
movups xmmword [ecx], xmm0
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x1080], eax
mov eax, dword [esi + 0x20]
mov word [ebx + 0x1084], ax
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x3c]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0xb8]
xor ecx, ebp
call fcn.10130483
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ebx + 0x1044], 2
jne 0x10290de7
movzx eax, word [ebx + 0x1050]
add ax, word [ebx + 0x1052]
add ax, word [ebx + 0x1054]
add ax, word [ebx + 0x1056]
add ax, word [ebx + 0x1058]
mov ecx, 0x4000
sub ecx, eax
movsx eax, cx
cmp eax, 0xcce
mov eax, 0xccd
cmovge eax, ecx
movzx eax, ax
movsx ecx, word [ebx + 0x1090]
imul ecx, eax
shr ecx, 0xe
mov dword [esi + 0x20], ecx
jmp 0x1029056e
mov eax, 0x20
jmp 0x1029061b
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
jmp 0x102909c4
push dword [esi + 8]
push edi
call fcn.10294060
add esp, 8
mov ecx, 0x8000000
cmp eax, ecx
cmovl ecx, eax
cmp ecx, 0x400001
mov eax, 0x400000
cmovge eax, ecx
lea ecx, [eax*8]
shr eax, 0xd
mov edx, dword [esi + 0xc]
imul eax, edx
movzx ecx, cx
imul ecx, edx
sar ecx, 0x10
add ecx, eax
sar ecx, 0xe
mov edi, dword [ebx + 0x924]
mov ax, 0x4000
mov dword [esi + 0x20], eax
mov dword [esi + 0xc], ecx
jmp 0x10290571