Function at 0x101363c0
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x94
mov eax, dword [0x101e6040]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [ecx + 0x1b0]
push ebx
push ebp
push esi
mov esi, dword [ecx + 0x1a0]
xor ebp, ebp
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x14], edx
push edi
mov esi, dword [eax + esi*4]
xor edi, edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], ebp
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0xb0]
mov dword [esp + 0x34], eax
mov eax, 1
mov dword [esp + 0x1c], ecx
shr ecx, 0x12
and ecx, 0x1f
shl eax, cl
mov ecx, edi
add eax, 2
mov dword [esp + 0x2c], eax
movzx eax, byte [esi + 0xa]
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x9c], edx
mov edx, dword [esi + 0x10]
mov eax, edx
mov ebx, dword [esi + 0x14]
add eax, ebx
adc ecx, ecx
add eax, edi
mov dword [esp + 0x28], eax
adc ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
add eax, dword [esi + 0x80]
mov dword [esp + 0x40], eax
mov eax, edi
adc eax, dword [esi + 0x84]
cmp eax, ecx
jl 0x101364b3
jg 0x10136478
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x28]
jbe 0x101364b3
mov ecx, edx
mov eax, edi
sub ecx, dword [esi + 0x80]
sbb eax, dword [esi + 0x84]
add ecx, ebx
adc eax, 0
add ecx, edi
adc eax, dword [esp + 0x20]
test eax, eax
jg 0x101364b3
jl 0x1013649f
cmp ecx, dword [esp + 0x10]
jae 0x101364b3
mov eax, dword [esi + 0x80]
xor ecx, ecx
sub ecx, eax
add ecx, edx
add ecx, ebx
mov dword [esp + 0x10], ecx
jmp 0x101364bd
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x80]
add edx, edi
adc edi, dword [esp + 0x20]
cmp edi, dword [esi + 0x84]
jg 0x101364d5
jl 0x101364d1
cmp edx, eax
ja 0x101364d5
cmp ebx, ecx
jae 0x101364df
mov dword [esi + 0x90], 1
cmp dword [esi + 0x90], ebp
je 0x1013653d
mov ebp, dword [esp + 0x50]
cmp dword [ebp + 0xc4], 1
je 0x10136508
cmp dword [ebp + 0x1c], 1
je 0x10136508
test byte [esp + 0x1c], 4
lea eax, [ecx*8]
je 0x1013650f
lea eax, [ecx*4]
push eax
push 0
push dword [esp + 0x20]
call fcn.10152e30
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, eax
xor edx, edx
add dword [esi + 0x80], ecx
adc edx, dword [esi + 0x84]
mov dword [esi + 0x84], edx
jmp 0x10137497
mov ebx, dword [esp + 0x1c]
mov eax, ebx
and eax, 8
je 0x10136562
cmp dword [esi + 0x74], ebp
jne 0x101367ba
mov edx, dword [esp + 0x2c]
lea edx, [edx*2 + 0x80]
mov dword [esp + 0x2c], edx
jmp 0x1013656f
cmp dword [esi + 0x74], ebp
jne 0x101367ba
mov edx, dword [esp + 0x2c]
test ebx, 0x40000004
je 0x1013664c
mov edx, dword [esp + 0x18]
lea ebx, [edx + ecx*4]
test eax, eax
je 0x101365b8
mov dword [esp + 0x14], ecx
mov edi, edx
cmp edx, ebx
jae 0x101365c7
push 0
xor edx, edx
mov ecx, esi
call fcn.101475a0
mov dword [edi], eax
add edi, 4
cmp eax, 0x80000000
je 0x101365ad
cmp edi, ebx
jb 0x10136590
jmp 0x101365c7
mov eax, edi
sub eax, dword [esp + 0x18]
sar eax, 2
jmp 0x101365c3
push ecx
mov ecx, esi
call fcn.10147c40
add esp, 4
mov dword [esp + 0x14], eax
mov edi, dword [esi + 0x8c]
lea ebx, [esi + 0x168]
test edi, edi
je 0x101365fb
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
nop
push ebp
mov edx, esi
mov ecx, ebx
call fcn.101374b0
add esp, 4
add ebx, 0x60
sub edi, 1
jne 0x101365e0
mov esi, dword [esp + 0x30]
xor ebp, ebp
mov edi, dword [esp + 0x18]
mov ecx, edi
mov eax, dword [esp + 0x10]
lea ebx, [edi + eax*4]
cmp edi, ebx
jae 0x10137228
mov edi, dword [ecx]
mov eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x2c]
jg 0x10136638
mov eax, dword [esp + 0x34]
add ecx, 4
lea edi, [edi + eax*2]
add edi, eax
mov dword [esp + 0x34], edi
cmp ecx, ebx
jb 0x10136610
jmp 0x10137224
mov edi, dword [esp + 0x18]
mov eax, ecx
sub eax, edi
sar eax, 2
mov dword [esp + 0x14], eax
jmp 0x1013722c
mov ebp, dword [esp + 0x18]
lea ebx, [ecx*8]
add ebx, ebp
mov dword [esp + 0x40], ebx
test eax, eax
je 0x101366b4
mov dword [esp + 0x14], ecx
mov edi, ebp
cmp ebp, ebx
jae 0x101366cd
mov dword [esp + 0x2c], edx
nop
push 0
xor edx, edx
mov ecx, esi
call fcn.101475a0
mov dword [edi], eax
cmp eax, 0x80000000
je 0x101366a5
push 0
mov edx, 1
mov ecx, esi
call fcn.101475a0
mov dword [edi + 4], eax
cmp eax, 0x80000000
je 0x101366a5
add edi, 8
cmp edi, ebx
jb 0x10136670
jmp 0x101366cd
mov eax, edi
sub eax, ebp
sar eax, 2
shr eax, 1
mov dword [esp + 0x14], eax
jmp 0x101366cd
push ecx
mov edx, ebp
mov ecx, esi
call fcn.10147c40
mov dword [esp + 0x18], eax
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov edi, dword [esi + 0x8c]
lea ebp, [esi + 0x168]
test edi, edi
je 0x10136702
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
push esi
mov edx, ebx
mov ecx, ebp
call fcn.101376f0
add esp, 4
add ebp, 0x60
sub edi, 1
jne 0x101366e5
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
and ebp, 7
test byte [esp + 0x1c], 0x10
je 0x1013674d
mov edx, edi
cmp edi, ebx
jae 0x10136777
mov edi, dword [esp + 0x34]
nop
mov ecx, dword [edx]
mov eax, ecx
sar eax, 1
sub dword [edx + 4], eax
mov eax, dword [edx + 4]
add ecx, eax
add eax, ecx
mov dword [edx], ecx
add edx, 8
lea eax, [eax + ecx*2]
lea eax, [eax + edi*8]
add edi, eax
cmp edx, ebx
jb 0x10136720
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x18]
mov ecx, edi
jmp 0x10136781
mov ecx, edi
cmp edi, ebx
jae 0x10136777
mov edi, dword [esp + 0x34]
mov eax, dword [ecx]
lea eax, [eax + eax*2]
add eax, dword [ecx + 4]
add ecx, 8
add eax, edi
lea edi, [eax + edi*8]
cmp ecx, ebx
jb 0x10136757
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x18]
mov ecx, edi
jmp 0x10136781
mov ecx, edi
cmp edi, ebx
jae 0x10137228
mov eax, dword [ecx]
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x2c]
jg 0x101367a8
mov eax, dword [ecx + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x2c]
jg 0x101367a8
add ecx, 0x40
cmp ecx, ebx
jb 0x10136781
jmp 0x10137228
mov eax, ecx
sub eax, edi
sar eax, 2
shr eax, 1
mov dword [esp + 0x14], eax
jmp 0x1013722c
mov edi, dword [esp + 0x18]
mov edx, ebx
and edx, 0x40000004
setne cl
test bl, 8
setne al
test al, cl
mov ecx, dword [esp + 0x10]
je 0x101369e4
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x10137234
nop dword [eax]
lea eax, [esp + 0x98]
xor edx, edx
push eax
mov ecx, esi
call fcn.101475a0
mov ebx, eax
cmp ebx, 0x80000000
je 0x10137224
mov ecx, dword [esp + 0x30]
add esi, 0x168
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x101368c8
mov ecx, dword [esi]
dec eax
mov dword [esp + 0x40], eax
cmp ecx, 8
jle 0x10136858
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
test cl, 1
je 0x1013684a
lea edx, [eax + eax]
mov dword [esi + 0x14], eax
sub edx, edi
xor ebp, ebp
jmp 0x10136861
lea edx, [eax + eax*2]
mov dword [esi + 0x14], eax
sub edx, edi
sar edx, 1
xor ebp, ebp
jmp 0x10136861
mov edx, dword [esi + ebp*4 + 0x10]
add ebp, ecx
and ebp, 7
mov edi, dword [esi + 8]
movsx eax, dx
cmp edx, eax
je 0x10136886
mov ecx, edx
movzx eax, dx
imul eax, edi
sar ecx, 9
and ecx, 0xffffff80
imul ecx, edi
sar eax, 9
inc eax
add eax, ecx
sar eax, 1
jmp 0x10136893
mov eax, edi
imul eax, edx
add eax, 0x200
sar eax, 0xa
lea ecx, [eax + ebx]
test edx, edx
je 0x101368af
test ebx, ebx
je 0x101368af
mov eax, dword [esi + 4]
xor edx, ebx
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x40]
mov ebx, ecx
mov dword [esi + ebp*4 + 0x10], ecx
add esi, 0x60
mov ebp, dword [esp + 0x24]
test eax, eax
jne 0x10136827
mov esi, dword [esp + 0x30]
inc ebp
and ebp, 7
test byte [esp + 0x1c], 0x40
mov dword [esp + 0x24], ebp
je 0x1013699a
mov edx, dword [esi + 0x130]
add edx, dword [esi + 0x128]
mov edi, dword [esi + 0x138]
mov ecx, edi
mov dword [esi + 0x128], edx
movsx eax, di
sar edx, 0x10
cmp edi, eax
je 0x1013691c
sar ecx, 9
and ecx, 0xffffff80
movzx eax, di
imul ecx, edx
imul eax, edx
inc ecx
sar eax, 9
add ecx, eax
sar ecx, 1
jmp 0x10136928
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
neg ecx
test dword [esp + 0x1c], 0x20000000
je 0x1013697e
test edx, edx
jns 0x1013697e
test ecx, ecx
je 0x1013697e
cmp ecx, edi
jne 0x10136962
test ecx, ecx
jns 0x10136961
inc ecx
mov eax, ecx
sub eax, dword [esp + 0x98]
mov dword [esi + 0x138], eax
mov eax, dword [esp + 0x98]
sub eax, ecx
add ebx, eax
jmp 0x101369a1
dec ecx
mov eax, ecx
sub eax, dword [esp + 0x98]
mov dword [esi + 0x138], eax
mov eax, dword [esp + 0x98]
sub eax, ecx
add ebx, eax
jmp 0x101369a1
mov eax, dword [esp + 0x98]
neg eax
mov dword [esi + 0x138], eax
mov eax, dword [esp + 0x98]
sub eax, ecx
add ebx, eax
jmp 0x101369a1
add ebx, dword [esp + 0x98]
mov eax, dword [esp + 0x34]
lea ecx, [ebx + eax*2]
add ecx, eax
mov eax, ebx
cdq
xor eax, edx
mov dword [esp + 0x34], ecx
sub eax, edx
cmp eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
jg 0x101369db
mov edi, dword [esp + 0x20]
inc eax
mov dword [esp + 0x14], eax
mov dword [edi], ebx
add edi, 4
mov dword [esp + 0x20], edi
cmp eax, dword [esp + 0x10]
jb 0x101367f0
mov edi, dword [esp + 0x18]
jmp 0x1013722c
xor eax, eax
mov dword [esp + 0x14], eax
test edx, edx
jne 0x10137234
mov dword [esp + 0x40], edi
test ecx, ecx
je 0x10137234
nop
lea eax, [esp + 0x98]
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x44], ebp
push eax
xor edx, edx
mov dword [esp + 0x4c], ebx
mov ecx, esi
call fcn.101475a0
mov esi, eax
mov dword [esp + 0x38], esi
cmp esi, 0x80000000
je 0x1013721c
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x9c]
push eax
lea edx, [ebp + 1]
call fcn.101475a0
mov edi, eax
mov dword [esp + 0x3c], edi
cmp edi, 0x80000000
je 0x1013721c
test byte [esp + 0x1c], 0x20
je 0x10136ca9
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
add ebp, esi
add ebx, edi
mov dword [esp + 0x44], ebp
lea edx, [eax + 0x168]
mov dword [esp + 0x48], ebx
mov eax, dword [eax + 0x8c]
test eax, eax
je 0x10136c92
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [edx]
test eax, eax
jle 0x10136b5c
cmp eax, 8
jle 0x10136ad0
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov edi, dword [edx + 0x30]
test al, 1
je 0x10136abf
lea esi, [ecx + ecx]
add edi, edi
sub esi, ebx
sub edi, dword [edx + 0x34]
jmp 0x10136adc
lea esi, [ecx + ecx*2]
lea edi, [edi + edi*2]
sub esi, ebx
sub edi, dword [edx + 0x34]
sar esi, 1
sar edi, 1
jmp 0x10136adc
mov eax, dword [esp + 0x24]
mov esi, dword [edx + eax*4 + 0x10]
mov edi, dword [edx + eax*4 + 0x30]
mov ebx, dword [edx + 8]
movsx eax, si
cmp esi, eax
je 0x10136b01
mov ecx, esi
movzx eax, si
sar ecx, 9
and ecx, 0xffffff80
imul ecx, ebx
imul ebx, eax
sar ebx, 9
inc ebx
add ebx, ecx
sar ebx, 1
jmp 0x10136b0d
imul ebx, esi
add ebx, 0x200
sar ebx, 0xa
mov esi, dword [edx + 0xc]
add ebp, ebx
movsx eax, di
cmp edi, eax
je 0x10136b41
mov ebx, dword [esp + 0x48]
mov ecx, edi
sar ecx, 9
and ecx, 0xffffff80
movzx eax, di
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
add ebx, esi
mov dword [esp + 0x48], ebx
jmp 0x10136c7b
mov ebx, dword [esp + 0x48]
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebx, esi
mov dword [esp + 0x48], ebx
jmp 0x10136c7b
cmp eax, 0xffffffff
jne 0x10136bdc
mov esi, dword [edx + 0x10]
mov edi, dword [edx + 8]
movsx eax, si
cmp esi, eax
je 0x10136b89
mov ecx, esi
movzx esi, si
imul esi, edi
sar ecx, 9
and ecx, 0xffffff80
imul ecx, edi
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x10136b95
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebp, esi
mov esi, dword [edx + 0xc]
movsx eax, bp
cmp ebp, eax
je 0x10136bc5
mov ecx, ebp
movzx eax, bp
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
add ebx, esi
mov dword [esp + 0x48], ebx
jmp 0x10136c7b
imul esi, ebp
add esi, 0x200
sar esi, 0xa
add ebx, esi
mov dword [esp + 0x48], ebx
jmp 0x10136c7b
mov esi, dword [edx + 0x30]
mov edi, dword [edx + 0xc]
movsx eax, si
cmp esi, eax
je 0x10136c04
mov ecx, esi
movzx esi, si
imul esi, edi
sar ecx, 9
and ecx, 0xffffff80
imul ecx, edi
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x10136c10
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebx, esi
cmp dword [edx], 0xfffffffd
mov dword [esp + 0x48], ebx
jne 0x10136c48
mov esi, dword [edx + 0x10]
mov edi, dword [edx + 8]
movsx eax, si
cmp esi, eax
je 0x10136c43
mov ecx, esi
movzx esi, si
imul esi, edi
sar ecx, 9
and ecx, 0xffffff80
imul ecx, edi
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x10136c79
imul esi, edi
jmp 0x10136c70
mov esi, dword [edx + 8]
movsx eax, bx
cmp ebx, eax
je 0x10136c6d
mov ecx, ebx
movzx eax, bx
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x10136c79
imul esi, ebx
add esi, 0x200
sar esi, 0xa
add ebp, esi
mov eax, dword [esp + 0x28]
add edx, 0x60
test eax, eax
jne 0x10136a92
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x44], ebp
test byte [esp + 0x1c], 0x10
je 0x10136ca9
mov eax, ebp
sar eax, 1
sub ebx, eax
add ebp, ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 0x8c]
lea eax, [esi + 0x168]
test ecx, ecx
je 0x10137034
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x24]
nop dword [eax]
dec ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [eax]
test ecx, ecx
jle 0x10136e1e
cmp ecx, 8
jle 0x10136d28
mov esi, dword [eax + 0x30]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x20], esi
test cl, 1
je 0x10136d00
lea edi, [edx + edx]
add esi, esi
sub edi, dword [eax + 0x14]
sub esi, dword [eax + 0x34]
jmp 0x10136d14
mov dword [esp + 0x20], esi
lea edi, [edx + edx*2]
sub edi, dword [eax + 0x14]
lea esi, [esi + esi*2]
sub esi, dword [eax + 0x34]
sar edi, 1
sar esi, 1
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x14], edx
mov dword [eax + 0x34], ecx
mov dword [esp + 0x28], 0
jmp 0x10136d39
mov edi, dword [eax + ebp*4 + 0x10]
add ecx, ebp
mov esi, dword [eax + ebp*4 + 0x30]
and ecx, 7
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 8]
movsx ecx, di
mov dword [esp + 0x38], edx
cmp edi, ecx
je 0x10136d66
mov edx, edi
movzx ecx, di
imul ecx, dword [esp + 0x38]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [esp + 0x38]
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x10136d78
mov ecx, edx
mov dword [esp + 0x38], edx
imul ecx, edi
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [eax + 0xc]
add ecx, ebx
mov dword [esp + 0x4c], ecx
movsx ecx, si
mov dword [esp + 0x20], edx
cmp esi, ecx
je 0x10136dab
mov edx, esi
movzx ecx, si
imul ecx, dword [esp + 0x20]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [esp + 0x20]
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x10136dbd
mov ecx, esi
mov dword [esp + 0x20], edx
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [esp + 0x3c]
add ecx, edx
mov dword [esp + 0x3c], ecx
test edi, edi
je 0x10136de2
test ebx, ebx
je 0x10136de2
mov ecx, dword [eax + 4]
xor edi, ebx
sar edi, 0x1f
xor ecx, edi
sub ecx, edi
add ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
test esi, esi
je 0x10136dfd
test edx, edx
je 0x10136dfd
mov ecx, dword [eax + 4]
xor esi, edx
sar esi, 0x1f
xor ecx, esi
sub ecx, esi
add ecx, dword [esp + 0x20]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov ebx, edx
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x3c]
mov edi, edx
mov dword [esp + 0x3c], edi
mov dword [eax + ecx*4 + 0x30], edx
jmp 0x10137015
cmp ecx, 0xffffffff
jne 0x10136f15
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 8]
movsx ecx, di
mov dword [esp + 0x28], esi
cmp edi, ecx
je 0x10136e53
mov edx, edi
movzx ecx, di
imul ecx, esi
sar edx, 9
and edx, 0xffffff80
imul edx, esi
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x10136e65
mov ecx, edi
mov dword [esp + 0x28], esi
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
lea esi, [ecx + ebx]
test edi, edi
je 0x10136e97
test ebx, ebx
je 0x10136e97
xor edi, ebx
mov ecx, 0x400
sar edi, 0x1f
mov edx, edi
xor edx, dword [esp + 0x28]
add edx, dword [eax + 4]
sub edx, edi
cmp edx, 0x400
cmovg edx, ecx
mov ecx, edi
xor ecx, edx
sub ecx, edi
mov dword [eax + 8], ecx
mov edi, dword [eax + 0xc]
mov ebx, esi
movsx ecx, si
cmp esi, ecx
je 0x10136ebe
mov edx, esi
movzx ecx, si
imul ecx, edi
sar edx, 9
and edx, 0xffffff80
imul edx, edi
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x10136ecc
mov ecx, esi
imul ecx, edi
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [esp + 0x3c]
add ecx, edx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x10136f07
test edx, edx
je 0x10136f07
xor esi, edx
mov ecx, 0x400
sar esi, 0x1f
mov edx, esi
xor edx, edi
add edx, dword [eax + 4]
sub edx, esi
cmp edx, 0x400
cmovg edx, ecx
mov ecx, esi
xor ecx, edx
sub ecx, esi
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov edi, ecx
mov dword [eax + 0x10], ecx
mov dword [esp + 0x3c], edi
jmp 0x10137015
mov edi, dword [eax + 0x30]
mov esi, dword [eax + 0xc]
movsx ecx, di
cmp edi, ecx
mov dword [esp + 0x28], esi
mov ecx, edi
je 0x10136f41
sar ecx, 9
and ecx, 0xffffff80
movzx edx, di
imul ecx, esi
imul edx, esi
inc ecx
sar edx, 9
add ecx, edx
sar ecx, 1
jmp 0x10136f51
imul ecx, esi
mov dword [esp + 0x28], esi
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [esp + 0x3c]
lea esi, [ecx + edx]
test edi, edi
je 0x10136f87
test edx, edx
je 0x10136f87
xor edi, edx
mov ecx, 0x400
sar edi, 0x1f
mov edx, edi
xor edx, dword [esp + 0x28]
add edx, dword [eax + 4]
sub edx, edi
cmp edx, 0x400
cmovg edx, ecx
mov ecx, edi
xor ecx, edx
sub ecx, edi
mov dword [eax + 0xc], ecx
cmp dword [eax], 0xfffffffd
mov edi, esi
mov dword [esp + 0x3c], edi
jne 0x10136f98
mov esi, dword [eax + 0x10]
mov dword [eax + 0x10], edi
mov edx, dword [eax + 8]
movsx ecx, si
mov dword [esp + 0x20], edx
cmp esi, ecx
je 0x10136fc5
mov edx, esi
movzx ecx, si
imul ecx, dword [esp + 0x20]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [esp + 0x20]
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x10136fd7
mov ecx, edx
mov dword [esp + 0x20], edx
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x10137010
test ebx, ebx
je 0x10137010
xor esi, ebx
mov ecx, 0x400
sar esi, 0x1f
mov edx, esi
xor edx, dword [esp + 0x20]
add edx, dword [eax + 4]
sub edx, esi
cmp edx, 0x400
cmovg edx, ecx
mov ecx, esi
xor ecx, edx
sub ecx, esi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, ecx
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x54]
add eax, 0x60
test ecx, ecx
jne 0x10136cd0
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x38]
and eax, 7
mov dword [esp + 0x24], eax
test dl, 0x20
jne 0x1013706e
mov ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
add ebp, ecx
add ebx, edi
test dl, 0x10
je 0x1013707b
mov eax, ebp
sar eax, 1
sub ebx, eax
add ebp, ebx
jmp 0x10137073
test dl, 0x10
je 0x1013707b
mov eax, ecx
sar eax, 1
sub edi, eax
add ecx, edi
test dl, 0x40
je 0x101371c2
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x98], eax
mov edx, dword [esi + 0x130]
add edx, dword [esi + 0x128]
mov ecx, dword [esi + 0x138]
mov dword [esi + 0x128], edx
movsx eax, cx
sar edx, 0x10
cmp ecx, eax
je 0x101370d6
mov eax, dword [esi + 0x138]
sar ecx, 9
and ecx, 0xffffff80
movzx eax, ax
imul ecx, edx
imul eax, edx
inc ecx
sar eax, 9
add eax, ecx
mov ecx, dword [esi + 0x138]
sar eax, 1
jmp 0x101370e3
mov eax, ecx
imul eax, edx
add eax, 0x200
sar eax, 0xa
neg eax
test dword [esp + 0x1c], 0x20000000
je 0x10137117
test edx, edx
jns 0x10137117
test eax, eax
je 0x10137117
cmp eax, ecx
jne 0x1013710c
test eax, eax
jns 0x1013710b
inc eax
mov ecx, eax
sub ecx, dword [esp + 0x98]
jmp 0x10137120
dec eax
mov ecx, eax
sub ecx, dword [esp + 0x98]
jmp 0x10137120
mov ecx, dword [esp + 0x98]
neg ecx
sub ebp, eax
mov dword [esi + 0x138], ecx
mov eax, ebx
sub eax, edi
mov dword [esp + 0x9c], eax
mov edx, dword [esi + 0x134]
add edx, dword [esi + 0x12c]
mov edi, dword [esi + 0x13c]
mov dword [esi + 0x12c], edx
movsx eax, di
sar edx, 0x10
cmp edi, eax
je 0x10137170
mov ecx, edi
movzx eax, di
imul eax, edx
sar ecx, 9
and ecx, 0xffffff80
imul ecx, edx
sar eax, 9
inc eax
add eax, ecx
sar eax, 1
jmp 0x1013717d
mov eax, edi
imul eax, edx
add eax, 0x200
sar eax, 0xa
neg eax
test dword [esp + 0x1c], 0x20000000
je 0x101371b1
test edx, edx
jns 0x101371b1
test eax, eax
je 0x101371b1
cmp eax, edi
jne 0x101371a6
test eax, eax
jns 0x101371a5
inc eax
mov ecx, eax
sub ecx, dword [esp + 0x9c]
jmp 0x101371ba
dec eax
mov ecx, eax
sub ecx, dword [esp + 0x9c]
jmp 0x101371ba
mov ecx, dword [esp + 0x9c]
neg ecx
mov dword [esi + 0x13c], ecx
sub ebx, eax
mov ecx, dword [esp + 0x2c]
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x10137220
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x10137220
mov ecx, dword [esp + 0x34]
lea eax, [ebx + ebp]
lea eax, [eax + ebp*2]
lea eax, [eax + ecx*8]
add ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov dword [eax], ebp
mov dword [eax + 4], ebx
add eax, 8
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x10]
jb 0x10136a00
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
jmp 0x1013722c
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
cmp eax, ecx
je 0x101372a0
test bl, 4
mov eax, 0
mov ebx, dword [esp + 0x10]
sete al
lea eax, [eax*4 + 4]
imul eax, ebx
push eax
push 0
push edi
call fcn.10152e30
add esp, 0xc
mov dword [esi + 0x90], 1
cmp dword [esi + 0xfc], 0
mov dword [esp + 0x14], ebx
je 0x101372a0
cmp dword [esi + 0x108], 0x10
jae 0x10137284
add dword [esi + 0xfc], 2
xorps xmm0, xmm0
movups xmmword [esi + 0xf4], xmm0
movq qword [esi + 0x104], xmm0
mov dword [esi + 0x10c], 0
test ebp, ebp
je 0x1013739b
mov ebx, dword [esi + 0x8c]
lea edi, [esi + 0x168]
test ebx, ebx
je 0x1013739b
lea edx, [edi + 0x30]
nop
mov eax, dword [edi]
dec ebx
test eax, eax
jle 0x1013738d
cmp eax, 8
jg 0x1013738d
movups xmm0, xmmword [edx - 0x20]
lea ecx, [ebp + 1]
and ecx, 7
movups xmmword [esp + 0x58], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [esp + 0x68], xmm0
mov eax, dword [esp + ebp*4 + 0x58]
movups xmm0, xmmword [edx]
movups xmmword [esp + 0x78], xmm0
movups xmm0, xmmword [edx + 0x10]
mov dword [edx - 0x20], eax
movups xmmword [esp + 0x88], xmm0
mov eax, dword [esp + ebp*4 + 0x78]
mov dword [edx], eax
mov eax, dword [esp + ecx*4 + 0x58]
mov dword [edx - 0x1c], eax
mov eax, dword [esp + ecx*4 + 0x78]
inc ecx
and ecx, 7
mov dword [edx + 4], eax
mov eax, dword [esp + ecx*4 + 0x58]
mov dword [edx - 0x18], eax
mov eax, dword [esp + ecx*4 + 0x78]
inc ecx
and ecx, 7
mov dword [edx + 8], eax
mov eax, dword [esp + ecx*4 + 0x58]
mov dword [edx - 0x14], eax
mov eax, dword [esp + ecx*4 + 0x78]
inc ecx
and ecx, 7
mov dword [edx + 0xc], eax
mov eax, dword [esp + ecx*4 + 0x58]
mov dword [edx - 0x10], eax
mov eax, dword [esp + ecx*4 + 0x78]
inc ecx
and ecx, 7
mov dword [edx + 0x10], eax
mov eax, dword [esp + ecx*4 + 0x58]
mov dword [edx - 0xc], eax
mov eax, dword [esp + ecx*4 + 0x78]
inc ecx
and ecx, 7
mov dword [edx + 0x14], eax
mov eax, dword [esp + ecx*4 + 0x58]
mov dword [edx - 8], eax
mov eax, dword [esp + ecx*4 + 0x78]
inc ecx
and ecx, 7
mov dword [edx + 0x18], eax
mov eax, dword [esp + ecx*4 + 0x58]
lea ebp, [ecx + 1]
mov dword [edx - 4], eax
and ebp, 7
mov eax, dword [esp + ecx*4 + 0x78]
mov dword [edx + 0x1c], eax
add edi, 0x60
add edx, 0x60
test ebx, ebx
jne 0x101372c0
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, edi
mov ebp, dword [esp + 0x50]
mov ecx, ebp
push ebx
call fcn.10137cd0
mov edx, dword [esp + 0x20]
add esp, 4
test dl, dl
jns 0x1013744b
test byte [ebp + 0xbc], 0x10
je 0x1013744b
test edx, 0x40000004
jne 0x101373d7
add ebx, ebx
mov ebp, dword [ebp + 0xc0]
mov ecx, edi
movzx eax, byte [esi + 0x123]
sub ebp, eax
add ebp, 0x7f
je 0x10137447
test ebx, ebx
je 0x10137447
mov edx, dword [ecx]
dec ebx
mov eax, edx
sar eax, 0x17
movzx edi, al
test al, al
je 0x10137432
lea eax, [edi + ebp]
test eax, eax
jle 0x10137432
cmp edi, 0xff
je 0x10137424
cmp eax, 0xff
jge 0x10137424
shl eax, 0x17
xor eax, edx
and eax, 0x7f800000
xor eax, edx
jmp 0x10137434
mov eax, edx
and eax, 0x80000000
xor eax, 0x7f800000
jmp 0x10137434
xor eax, eax
mov edx, ecx
add ecx, 4
mov dword [edx], eax
test ebx, ebx
jne 0x101373f1
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
test edx, 0x40000000
je 0x10137475
lea ecx, [edi + ebx*8]
lea edx, [edi + ebx*4]
mov edi, ebx
test ebx, ebx
je 0x10137475
nop
mov eax, dword [edx - 4]
lea edx, [edx - 4]
mov dword [ecx - 4], eax
lea ecx, [ecx - 8]
mov eax, dword [edx]
mov dword [ecx], eax
sub edi, 1
jne 0x10137460
mov eax, ebx
xor ecx, ecx
add dword [esi + 0x80], eax
mov eax, dword [esp + 0x34]
adc ecx, dword [esi + 0x84]
mov dword [esi + 0xb0], eax
mov eax, ebx
mov dword [esi + 0x84], ecx
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10151433
add esp, 0x94
ret