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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x101e6040]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x10]
push esi
mov dword [esp + 0x34], eax
mov esi, ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax]
push edi
mov edi, edx
mov edx, dword [ebp + 0xc]
add eax, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], edx
test edi, edi
je 0x100ce78a
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
add eax, edi
mov dword [esp + 0x28], eax
jmp 0x100ce792
mov dword [esp + 0x28], 0
test ecx, ecx
mov dword [esp + 0x10], edi
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 1
cmovne eax, ecx
xorps xmm0, xmm0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
movaps xmmword [esp + 0x80], xmm0
mov dword [eax], 0
mov eax, dword [esp + 0x34]
mov dword [eax], 0
xor eax, eax
cmp dword [ecx + 4], eax
setne al
or dword [esi + 0xcc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x34]
cmp ecx, 0xe
ja case.default.0x100ce7eb
jmp dword [ecx*4 + 0x100cf4fc]
sub eax, edx
cmp eax, 0x13
jb 0x100ce819
push eax
mov ecx, esi
call fcn.100ce320
add esp, 4
cmp eax, 0xffffffea
ja 0x100cf4e7
mov edx, dword [esp + 0xc]
add edx, eax
mov dword [esp + 0xc], edx
jmp 0x100ce7df
mov dword [esi + 0x4c], 0
test eax, eax
je 0x100cf1d0
mov eax, dword [esp + 0x18]
mov dword [esi + 0x50], 7
mov dword [esi + 0x34], 1
mov ecx, dword [esi + 0x4c]
sub eax, edx
mov edi, dword [esi + 0x50]
sub edi, ecx
cmp edi, eax
cmovae edi, eax
lea eax, [ecx + 0xd0]
push edi
push edx
add eax, esi
push eax
call fcn.101528b0
mov ecx, dword [esi + 0x4c]
add esp, 0xc
add dword [esp + 0xc], edi
add ecx, edi
mov eax, dword [esi + 0x50]
mov dword [esi + 0x4c], ecx
cmp ecx, eax
jb 0x100cf210
push eax
lea edx, [esi + 0xd0]
mov ecx, esi
call fcn.100ce320
add esp, 4
cmp eax, 0xffffffea
ja 0x100cf1e9
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x100ce7df
cmp dword [esi + 0x18], 0
je 0x100ce8fb
xorps xmm0, xmm0
mov dword [esp + 0x58], 0x24234428
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x5c], 0x85ebca77
movups xmm0, xmmword [esp + 0x50]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0x61c8864f
movups xmmword [esi + 0x6c], xmm0
mov dword [esp + 0x78], 0
movups xmm0, xmmword [esp + 0x60]
movups xmmword [esi + 0x7c], xmm0
movups xmm0, xmmword [esp + 0x70]
movups xmmword [esi + 0x8c], xmm0
xor eax, eax
mov ecx, 0x20000
cmp dword [esi + 0x14], eax
cmove eax, ecx
add eax, dword [esi + 0x40]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x44]
jbe 0x100ce9e9
movups xmm0, xmmword [esi]
mov eax, dword [esi + 0x48]
mov dword [esi + 0x44], 0
movaps xmmword [esp + 0x40], xmm0
psrldq xmm0, 8
movd ecx, xmm0
push eax
test ecx, ecx
je 0x100ce943
push dword [esp + 0x50]
call ecx
add esp, 8
jmp 0x100ce94b
call fcn.10154f5a
add esp, 4
movups xmm0, xmmword [esi]
mov eax, dword [esi + 0x40]
add eax, 4
movd ecx, xmm0
movaps xmmword [esp + 0x40], xmm0
push eax
test ecx, ecx
je 0x100ce96d
push dword [esp + 0x50]
call ecx
add esp, 8
jmp 0x100ce975
call fcn.101554b7
add esp, 4
mov dword [esi + 0x48], eax
test eax, eax
je 0x100cf220
movups xmm0, xmmword [esi]
mov eax, dword [esi + 0x54]
push eax
movaps xmmword [esp + 0x44], xmm0
psrldq xmm0, 8
movd ecx, xmm0
test ecx, ecx
je 0x100ce9a4
push dword [esp + 0x50]
call ecx
add esp, 8
jmp 0x100ce9ac
call fcn.10154f5a
add esp, 4
movups xmm0, xmmword [esi]
push dword [esp + 0x14]
movd eax, xmm0
movaps xmmword [esp + 0x44], xmm0
test eax, eax
je 0x100ce9cb
push dword [esp + 0x50]
call eax
add esp, 8
jmp 0x100ce9d3
call fcn.101554b7
add esp, 4
mov dword [esi + 0x54], eax
test eax, eax
je 0x100cf220
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x54]
mov ecx, 3
mov dword [esi + 0x60], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x34], 3
sub eax, edx
cmp eax, 4
jb 0x100cea36
mov eax, edx
add edx, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edx
cmp ecx, 4
jne 0x100cea8a
jmp 0x100cea44
mov dword [esi + 0x4c], 0
mov dword [esi + 0x34], 4
mov eax, dword [esp + 0x18]
mov edi, eax
mov eax, 4
sub eax, dword [esi + 0x4c]
sub edi, edx
cmp eax, edi
cmovb edi, eax
mov eax, dword [esi + 0x48]
add eax, dword [esi + 0x4c]
push edi
push edx
push eax
call fcn.101528b0
mov eax, dword [esi + 0x4c]
add esp, 0xc
add dword [esp + 0xc], edi
add eax, edi
mov dword [esi + 0x4c], eax
cmp eax, 4
jb 0x100cf35a
mov eax, dword [esi + 0x48]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 2]
mov edx, dword [esi + 0x2c]
shl ecx, 8
add ecx, eax
shl edx, 2
mov eax, dword [esp + 0x14]
shl ecx, 8
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xc]
movzx eax, byte [eax + 1]
add ecx, eax
mov eax, dword [esp + 0x14]
shl ecx, 8
movzx eax, byte [eax]
add ecx, eax
mov eax, ecx
and eax, 0x7fffffff
test ecx, ecx
jne 0x100cead5
mov dword [esi + 0x34], 0xa
jmp 0x100ce7df
cmp eax, dword [esi + 0x40]
ja 0x100cf239
test ecx, ecx
jns 0x100ceb58
cmp dword [esi + 0x2c], 0
mov dword [esi + 0x50], eax
je 0x100ceb4c
xorps xmm0, xmm0
mov dword [esp + 0x58], 0x24234428
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x5c], 0x85ebca77
movups xmm0, xmmword [esp + 0x50]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0x61c8864f
movups xmmword [esi + 0x9c], xmm0
mov dword [esp + 0x78], 0
movups xmm0, xmmword [esp + 0x60]
movups xmmword [esi + 0xac], xmm0
movups xmm0, xmmword [esp + 0x70]
movups xmmword [esi + 0xbc], xmm0
mov dword [esi + 0x34], 5
jmp 0x100ce7df
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esi + 0x34], 7
mov dword [esi + 0x50], ecx
cmp edi, dword [esp + 0x28]
je 0x100ceb7a
mov eax, dword [esp + 0x18]
cmp edx, eax
jne case.default.0x100ce7eb
lea eax, [ecx + 4]
mov dword [esp + 0x1c], eax
jmp 0x100cf405
test edi, edi
je 0x100cec2b
mov eax, dword [esp + 0x28]
sub eax, edi
mov edi, dword [esp + 0x18]
sub edi, edx
cmp edi, eax
cmovae edi, eax
cmp dword [esi + 0x50], edi
cmovb edi, dword [esi + 0x50]
push edi
push edx
push dword [esp + 0x18]
mov dword [esp + 0x20], edi
call fcn.101528b0
add esp, 0xc
cmp dword [esi + 0xcc], 0
jne 0x100cebfd
cmp dword [esi + 0x2c], 0
je 0x100cebde
push edi
mov edi, dword [esp + 0x10]
lea ecx, [esi + 0x9c]
mov edx, edi
call fcn.10113610
add esp, 4
jmp 0x100cebe2
mov edi, dword [esp + 0xc]
cmp dword [esi + 0x18], 0
je 0x100cebf9
push dword [esp + 0x14]
lea ecx, [esi + 0x6c]
mov edx, edi
call fcn.10113610
add esp, 4
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x20]
or eax, dword [esi + 0x24]
je 0x100cec0c
sub dword [esi + 0x38], edi
sbb dword [esi + 0x3c], 0
cmp dword [esi + 0x14], 0
jne 0x100cec27
mov edx, dword [esp + 0x10]
mov ecx, esi
push 0
push dword [esp + 0x30]
push edi
call fcn.100ce5b0
add esp, 0xc
mov edx, dword [esp + 0xc]
add dword [esp + 0x10], edi
add edx, edi
mov eax, dword [esi + 0x50]
mov dword [esp + 0xc], edx
cmp edi, eax
jne 0x100cf252
cmp dword [esi + 0x2c], 0
je 0x100cec5e
mov edi, dword [esp + 0x10]
mov eax, 6
mov dword [esi + 0x4c], 0
mov dword [esi + 0x34], eax
jmp 0x100ce7df
mov edi, dword [esp + 0x10]
mov eax, 3
mov dword [esi + 0x34], eax
jmp 0x100ce7df
mov edi, eax
sub edi, edx
cmp edi, 4
jl 0x100cec89
cmp dword [esi + 0x4c], 0
jne 0x100cec89
mov edi, edx
add edx, 4
mov dword [esp + 0xc], edx
jmp 0x100cecc2
mov ecx, dword [esi + 0x4c]
mov eax, 4
sub eax, ecx
cmp eax, edi
cmovb edi, eax
lea eax, [ecx + 0xd0]
push edi
push edx
add eax, esi
push eax
call fcn.101528b0
add dword [esi + 0x4c], edi
add esp, 0xc
add dword [esp + 0xc], edi
cmp dword [esi + 0x4c], 4
jb 0x100cf405
lea edi, [esi + 0xd0]
cmp dword [esi + 0xcc], 0
jne 0x100cecfc
lea ecx, [esi + 0x9c]
call fcn.101137a0
movzx edx, byte [edi + 3]
movzx ecx, byte [edi + 2]
shl edx, 8
add edx, ecx
movzx ecx, byte [edi + 1]
shl edx, 8
add edx, ecx
movzx ecx, byte [edi]
shl edx, 8
add edx, ecx
cmp edx, eax
jne 0x100cf271
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x34], 3
jmp 0x100ce7df
mov ecx, dword [esi + 0x50]
sub eax, edx
cmp eax, ecx
jae 0x100ced2c
mov dword [esi + 0x4c], 0
mov dword [esi + 0x34], 8
jmp 0x100ce7df
mov eax, edx
mov dword [esp + 0x14], edx
add edx, ecx
mov dword [esp + 0xc], edx
jmp 0x100ced7a
mov eax, dword [esi + 0x50]
sub eax, dword [esi + 0x4c]
mov edi, dword [esp + 0x18]
sub edi, edx
cmp eax, edi
cmovb edi, eax
mov eax, dword [esi + 0x48]
add eax, dword [esi + 0x4c]
push edi
push edx
push eax
call fcn.101528b0
mov edx, dword [esi + 0x4c]
add esp, 0xc
add dword [esp + 0xc], edi
add edx, edi
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x4c], edx
cmp edx, ecx
jb 0x100cf2a3
mov eax, dword [esi + 0x48]
mov dword [esp + 0x14], eax
cmp dword [esi + 0x2c], 0
je 0x100cedbe
lea edx, [ecx - 4]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x50], edx
movzx edi, byte [edx + eax + 3]
movzx eax, byte [edx + eax + 2]
shl edi, 8
add edi, eax
movzx eax, byte [edx + ecx + 1]
shl edi, 8
add edi, eax
movzx eax, byte [edx + ecx]
shl edi, 8
push 0
add edi, eax
call fcn.101134f0
add esp, 4
cmp edi, eax
jne 0x100cf271
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x10]
mov edi, dword [esi + 0x40]
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x5c]
cmp eax, edi
jb 0x100ceed9
test edx, edx
je 0x100cee2b
lea eax, [ecx + edx]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
cmp eax, dword [esi + 0x60]
je 0x100ceee1
cmp ecx, 0x40000000
jbe 0x100cee2b
add ecx, 0xffff0000
add edx, ecx
mov ecx, 0x10000
lea eax, [ecx + edx]
cmp eax, dword [esp + 0x10]
jne 0x100cee58
mov edx, dword [esp + 0x10]
cmp ecx, 0xffff
jl 0x100cee45
mov ecx, dword [esp + 0x14]
push edi
push dword [esi + 0x50]
call fcn.100cfb60
add esp, 8
jmp 0x100cee6e
test ecx, ecx
jne 0x100cee04
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push edi
push dword [esi + 0x50]
call fcn.100cf550
add esp, 8
jmp 0x100cee6e
push ecx
mov ecx, dword [esp + 0x18]
push edi
push dword [esi + 0x50]
call fcn.100d0160
add esp, 0xc
jmp 0x100cee6e
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x18]
push edi
push dword [esi + 0x50]
call fcn.100d0780
add esp, 0x10
mov edi, eax
test edi, edi
js 0x100cf28a
cmp dword [esi + 0x18], 0
je 0x100cee97
cmp dword [esi + 0xcc], 0
jne 0x100cee97
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x6c]
push edi
call fcn.10113610
add esp, 4
mov eax, dword [esi + 0x20]
or eax, dword [esi + 0x24]
je 0x100ceea6
sub dword [esi + 0x38], edi
sbb dword [esi + 0x3c], 0
cmp dword [esi + 0x14], 0
jne 0x100ceec1
mov edx, dword [esp + 0x10]
mov ecx, esi
push 0
push dword [esp + 0x30]
push edi
call fcn.100ce5b0
add esp, 0xc
add dword [esp + 0x10], edi
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x34], 3
jmp 0x100ce7df
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
cmp dword [esi + 0x14], 0
mov eax, edx
jne 0x100cef43
mov edx, dword [esi + 0x54]
mov ecx, dword [esp + 0x24]
cmp eax, edx
jne 0x100cef30
mov edx, eax
cmp ecx, 0x20000
jbe 0x100cef29
add ecx, 0xffff0000
push 0x10000
add eax, ecx
push eax
push dword [esi + 0x54]
call fcn.101528b0
mov edx, dword [esi + 0x58]
add esp, 0xc
mov edi, dword [esi + 0x40]
mov ecx, 0x10000
mov dword [esi + 0x5c], 0x10000
mov eax, dword [esi + 0x54]
add eax, ecx
jmp 0x100cef40
mov eax, 0x10000
cmp ecx, eax
cmovb eax, ecx
add eax, edx
mov edx, dword [esp + 0x20]
mov dword [esi + 0x60], eax
test edx, edx
je 0x100cef89
cmp ecx, 0x40000000
jbe 0x100cef89
mov eax, dword [esi + 0x60]
add ecx, 0xffff0000
add edx, ecx
mov dword [esp + 0x24], eax
mov ecx, 0x10000
lea eax, [ecx + edx]
cmp eax, dword [esp + 0x24]
jne 0x100cefbb
mov edx, dword [esi + 0x60]
cmp ecx, 0xffff
jl 0x100cefa8
mov ecx, dword [esp + 0x14]
push edi
push dword [esi + 0x50]
call fcn.100cfb60
add esp, 8
jmp 0x100cefd0
mov eax, dword [esi + 0x60]
mov dword [esp + 0x24], eax
test ecx, ecx
jne 0x100cef63
mov ecx, dword [esp + 0x14]
mov edx, eax
push edi
push dword [esi + 0x50]
call fcn.100cf550
add esp, 8
jmp 0x100cefd0
push ecx
mov ecx, dword [esp + 0x18]
push edi
push dword [esi + 0x50]
call fcn.100d0160
add esp, 0xc
jmp 0x100cefd0
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esi + 0x60]
push edi
push dword [esi + 0x50]
call fcn.100d0780
add esp, 0x10
mov edi, eax
test edi, edi
js 0x100cf28a
cmp dword [esi + 0x18], 0
je 0x100ceff8
cmp dword [esi + 0xcc], 0
jne 0x100ceff8
mov edx, dword [esi + 0x60]
lea ecx, [esi + 0x6c]
push edi
call fcn.10113610
add esp, 4
mov eax, dword [esi + 0x20]
or eax, dword [esi + 0x24]
je 0x100cf007
sub dword [esi + 0x38], edi
sbb dword [esi + 0x3c], 0
mov dword [esi + 0x64], edi
mov edi, dword [esp + 0x10]
mov dword [esi + 0x68], 0
mov dword [esi + 0x34], 9
test edi, edi
je 0x100cf0fd
mov edi, dword [esi + 0x64]
mov edx, dword [esp + 0x10]
sub edi, dword [esi + 0x68]
mov eax, dword [esp + 0x28]
sub eax, edx
cmp edi, eax
cmovae edi, eax
mov eax, dword [esi + 0x60]
add eax, dword [esi + 0x68]
push edi
push eax
push edx
mov dword [esp + 0x20], edi
call fcn.101528b0
add esp, 0xc
cmp dword [esi + 0x14], 0
jne 0x100cf0f2
mov edx, dword [esi + 0x5c]
mov ecx, dword [esp + 0x10]
test edx, edx
jne 0x100cf066
mov dword [esi + 0x58], ecx
mov eax, dword [esi + 0x58]
add eax, edx
cmp eax, ecx
jne 0x100cf074
lea eax, [edi + edx]
jmp 0x100cf0ef
mov eax, edi
sub eax, dword [esp + 0x2c]
add eax, ecx
cmp eax, 0x10000
jb 0x100cf08c
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x58], ecx
jmp 0x100cf0ef
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x58]
cmp ecx, eax
jne 0x100cf09b
lea eax, [edi + edx]
jmp 0x100cf0ef
mov edi, dword [esi + 0x60]
sub edi, eax
mov eax, edx
sub eax, dword [esi + 0x68]
add eax, ecx
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, 0x10000
sub eax, dword [esi + 0x64]
cmp dword [esi + 0x64], 0x10000
cmovbe ecx, eax
mov eax, edi
cmp ecx, edi
cmovbe eax, ecx
mov ecx, dword [esp + 0x20]
sub ecx, eax
push eax
push ecx
mov ecx, dword [esi + 0x54]
sub ecx, eax
add ecx, edi
push ecx
call fcn.101528b0
mov eax, dword [esi + 0x54]
add esp, 0xc
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x68]
add eax, edi
mov edi, dword [esp + 0x14]
add eax, edi
mov dword [esi + 0x5c], eax
add dword [esi + 0x68], edi
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x68]
cmp eax, dword [esi + 0x64]
jne 0x100cf2bd
mov edx, dword [esp + 0xc]
mov dword [esi + 0x34], 3
jmp 0x100ce7df
sub eax, edx
cmp eax, 4
jl 0x100cf12b
mov eax, edx
add edx, 4
mov dword [esp + 0xc], edx
jmp 0x100cf18d
mov dword [esi + 0x4c], 4
mov dword [esi + 0x50], 8
mov dword [esi + 0x34], 0xd
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi + 0x50]
mov eax, dword [esp + 0x18]
sub edi, ecx
sub eax, edx
cmp edi, eax
cmovae edi, eax
lea eax, [ecx + 0xd0]
push edi
push edx
add eax, esi
push eax
call fcn.101528b0
mov edx, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esi + 0x4c]
add edx, edi
add eax, edi
mov dword [esp + 0xc], edx
mov edi, dword [esi + 0x50]
mov dword [esi + 0x4c], eax
cmp eax, edi
jb 0x100cf35f
mov edi, dword [esp + 0x10]
lea eax, [esi + 0xd4]
movzx ecx, byte [eax + 3]
mov dword [esp + 0x20], eax
movzx eax, byte [eax + 2]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x20]
shl ecx, 8
movzx eax, byte [eax + 1]
add ecx, eax
mov eax, dword [esp + 0x20]
shl ecx, 8
movzx eax, byte [eax]
add ecx, eax
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], ecx
mov dword [esi + 0x50], ecx
mov dword [esi + 0x34], 0xe
jmp 0x100ce7df
mov eax, 7
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
push dword [esi + 0x50]
lea edx, [esi + 0xd0]
mov ecx, esi
call fcn.100ce320
add esp, 4
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
mov edi, eax
sub edi, ecx
add edi, 4
mov dword [esp + 0x1c], edi
jmp 0x100cf405
mov eax, 0xfffffff7
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffe
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
xor ecx, ecx
sub eax, edi
cmp dword [esi + 0x2c], ecx
mov dword [esi + 0x50], eax
setne cl
lea ecx, [ecx*4 + 4]
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x100cf405
mov eax, 0xfffffff9
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffff0
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x2c]
neg eax
sbb eax, eax
and eax, 4
sub eax, edx
add eax, 4
add eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x100cf405
mov dword [esp + 0x1c], 4
jmp 0x100cf405
mov eax, dword [esi + 0x38]
or eax, dword [esi + 0x3c]
jne 0x100cf30c
cmp dword [esi + 0x18], eax
jne 0x100cf2e4
mov dword [esp + 0x1c], 0
jmp 0x100cf3e6
mov edi, dword [esp + 0x18]
mov eax, edi
sub eax, edx
cmp eax, 4
jge 0x100cf301
mov dword [esi + 0x4c], 0
mov dword [esi + 0x34], 0xb
jmp 0x100cf329
mov edi, edx
add edx, 4
mov dword [esp + 0xc], edx
jmp 0x100cf36d
mov eax, 0xfffffff2
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x18]
sub edi, edx
mov eax, 4
sub eax, dword [esi + 0x4c]
cmp eax, edi
cmovb edi, eax
mov eax, dword [esi + 0x48]
add eax, dword [esi + 0x4c]
push edi
push edx
push eax
call fcn.101528b0
mov eax, dword [esi + 0x4c]
add esp, 0xc
add dword [esp + 0xc], edi
add eax, edi
mov dword [esi + 0x4c], eax
cmp eax, 4
jae 0x100cf36a
mov edi, 4
sub edi, eax
mov dword [esp + 0x1c], edi
jmp 0x100cf405
mov edi, dword [esi + 0x48]
cmp dword [esi + 0xcc], 0
jne 0x100cf2d7
lea ecx, [esi + 0x6c]
call fcn.101137a0
movzx edx, byte [edi + 3]
movzx ecx, byte [edi + 2]
shl edx, 8
add edx, ecx
movzx ecx, byte [edi + 1]
shl edx, 8
add edx, ecx
movzx ecx, byte [edi]
shl edx, 8
add edx, ecx
cmp edx, eax
je 0x100cf2d7
mov eax, 0xffffffee
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x50]
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, edi
cmp edi, dword [esp + 0x18]
cmovae eax, dword [esp + 0x18]
add edx, eax
sub edi, eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], edi
mov dword [esi + 0x50], edi
jne 0x100cf405
mov dword [esi + 0x34], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0xcc], 0
cmp dword [esi + 0x14], 0
jne 0x100cf4c7
mov edi, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
cmp edi, ecx
je 0x100cf4c7
test edi, edi
je 0x100cf4c7
mov eax, dword [esp + 0x30]
cmp dword [eax], 0
jne 0x100cf4c7
mov eax, dword [esi + 0x34]
add eax, 0xfffffffe
cmp eax, 8
jae 0x100cf4c7
cmp dword [esi + 0x34], 9
mov edx, dword [esi + 0x5c]
jne 0x100cf49a
sub edx, dword [esi + 0x68]
mov eax, 0x10000
sub eax, dword [esi + 0x64]
mov edi, dword [esi + 0x60]
add edx, dword [esi + 0x58]
sub edi, ecx
mov dword [esp + 0x30], eax
mov ecx, edi
xor eax, eax
cmp dword [esi + 0x64], 0x10000
cmovbe eax, dword [esp + 0x30]
cmp eax, edi
cmovbe ecx, eax
mov eax, dword [esi + 0x54]
push ecx
sub edx, ecx
sub eax, ecx
push edx
add eax, edi
push eax
call fcn.101528b0
mov eax, dword [esi + 0x54]
add esp, 0xc
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x68]
add eax, edi
mov dword [esi + 0x5c], eax
jmp 0x100cf4c7
lea eax, [edx + edi]
cmp edx, 0x10000
mov edi, 0x10000
cmovb edi, edx
push edi
sub eax, edi
push eax
push ecx
call fcn.101528b0
mov eax, dword [esi + 0x54]
add esp, 0xc
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], edi
lea ecx, [eax + edi]
mov dword [esi + 0x60], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0x3c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret