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

Disassembly:
mov eax, 0x3e98
call fcn.102e5760
mov eax, dword [0x1041020c]
xor eax, esp
mov dword [esp + 0x3e94], eax
mov eax, dword [esp + 0x3ea4]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x3eac]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3eb8]
mov dword [esp + 0x4c], eax
mov ebx, dword [edi + 0xb0]
lea ebp, [edi + 4]
mov eax, dword [esp + 0x3ec8]
mov esi, dword [edi]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0x2e0]
push 0x80
push 0
mov dword [esp + 0x24], edi
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x50], eax
lea eax, [esp + 0x3e2c]
push eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x50], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x64], 0x1312d00
call sub.VCRUNTIME140.dll_memset
push dword [esp + 0x58]
xorps xmm0, xmm0
mov dword [esp + 0x9c], ebp
lea eax, [edi + 0xf0]
mov dword [esp + 0x7c], ebp
push eax
movups xmmword [esp + 0xf8], xmm0
mov dword [esp + 0xf8], ebp
lea eax, [esp + 0xf8]
mov dword [esp + 0xc0], ebp
mov ebp, dword [esp + 0x3ed8]
push ebp
push eax
lea eax, [esp + 0x84]
mov dword [esp + 0xc4], esi
push eax
lea eax, [esp + 0xa8]
mov dword [esp + 0xd0], 0x10
push eax
push dword [esp + 0x84]
lea eax, [esp + 0x128]
mov dword [esp + 0xdc], 0
push dword [esp + 0x78]
mov dword [esp + 0xe4], 0xa
push edi
push eax
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc4], 0x14
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xa
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa4], 0x14
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0xa
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
movq qword [esp + 0x128], xmm0
mov dword [esp + 0x130], 0
mov dword [esp + 0x5c], ebp
call fcn.10315840
mov eax, dword [ebx + 0x2e0]
add esp, 0x34
cmp byte [edi + 8], 0
setne byte [esp + 0x1b]
mov eax, dword [eax + 0x21c]
mov ecx, dword [esp + 0x40]
shl eax, 0x10
mov dword [ecx], eax
cmp byte [edi + 8], 0
je 0x10316236
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x614]
jmp 0x1031623b
mov eax, 0x30
push eax
lea ebx, [edi + 4]
mov dword [esp + 0x60], eax
push ebx
push esi
call fcn.10318f50
mov esi, eax
add esp, 0xc
mov dword [esp + 0x54], esi
test esi, esi
jne 0x1031625f
lea eax, [esi + 0x40]
jmp 0x103174ab
lea eax, [esp + 0xa8]
push 0x11
push eax
call fcn.10314c30
mov ecx, dword [esp + 0xc4]
add esp, 8
test al, al
mov edx, 0x11
mov eax, dword [esp + 0x3eb0]
cmovne ecx, edx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0xc4]
mov edx, ecx
movups xmm0, xmmword [eax]
mov dword [esp + 0x10], edx
movups xmmword [ecx], xmm0
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [ebx], ecx
jne 0x103175c3
mov ebx, dword [esp + 0x3ec0]
mov dword [esp + 0x20], ebx
jmp 0x103162d8
mov edx, dword [esp + 0x10]
jmp 0x103162d8
push eax
push esi
call fcn.10318fd0
add esp, 8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x103162f1
test ecx, ecx
mov eax, 0xb
mov ecx, 0xe
cmove eax, ecx
jmp 0x10316315
mov cl, byte [eax]
inc eax
movzx ecx, cl
mov dword [edx + 0xc], eax
mov al, cl
mov dword [esp + 0x24], eax
cmp cl, 0xb
je 0x1031630a
cmp cl, 0xe
jne 0x10316319
xor ecx, ecx
movzx eax, al
cmp byte [edi + 8], cl
cmovne eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x64]
cmp dword [ecx], 0
jne 0x103174a7
sub dword [esp + 0x58], 1
je 0x103173e3
movzx edi, al
cmp edi, 0x1f
ja case.default.0x1031633d
jmp dword [edi*4 + 0x103175cc]
mov edi, dword [esp + 0x1c]
cmp byte [edi + 8], 0
je 0x103167ff
cmp byte [edi + 0x5d], 0
jne 0x103173e3
push esi
call fcn.10319050
add esp, 4
test eax, eax
js 0x103167ff
mov dword [edi + 0x78], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov edi, dword [esp + 0x1c]
cmp byte [edi + 8], 0
je 0x103167ff
cmp dword [edi + 0x60], 0
je 0x103173e3
mov eax, dword [esp + 0x1c]
add edi, 0x5c
push dword [eax + 0x80]
push dword [eax + 0x7c]
push dword [eax + 0x78]
push edi
call fcn.103116e0
add esp, 0x10
test al, al
je 0x103163d8
mov eax, dword [esp + 0x1c]
push dword [eax + 0x80]
push dword [eax + 0x7c]
push dword [eax + 0x78]
push edi
call fcn.10311760
add esp, 0x10
mov dword [esp + 0x38], eax
test eax, eax
jne 0x103174ab
push esi
call fcn.10319050
add esp, 4
cmp eax, dword [esp + 0x5c]
ja 0x103173e3
push eax
push esi
push edi
call fcn.10319750
mov edi, dword [esp + 0x28]
add esp, 0xc
mov byte [edi + 0x5d], 1
jmp 0x103162d0
cmp byte [esp + 0xe8], 0
mov edi, dword [esp + 0x1c]
jne 0x103167ff
lea eax, [esp + 0x1b]
push 0
push eax
lea eax, [esp + 0x90]
push dword [esp + 0x48]
push eax
push esi
push edi
call fcn.10319320
mov eax, dword [edi + 0xb0]
add esp, 0x18
cmp byte [eax + 0x231], 0
jne 0x103174a7
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x103162d4
cmp byte [esp + 0xe8], 0
mov edi, dword [esp + 0x1c]
jne 0x103167ff
lea eax, [esp + 0x1b]
push 0
push eax
lea eax, [esp + 0x70]
jmp 0x10316423
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x1031649d
cmp byte [esp + 0x1b], 0
jne 0x1031649d
push 0
push esi
call fcn.10319100
mov ecx, dword [esp + 0x48]
add esp, 8
add eax, dword [esp + 0x48]
mov dword [ecx], eax
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x1b], 1
mov eax, dword [edi + 0xb0]
cmp byte [eax + 0x231], 0
jne 0x103174a7
push esi
call fcn.103190a0
add ebp, eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x3ec8], ebp
push ebp
lea eax, [esp + 0x108]
push ebx
push eax
call fcn.10315a10
mov eax, dword [esi + 8]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov eax, dword [esi + 0xc]
xor edi, edi
sub eax, dword [esi + 8]
sar eax, 3
mov dword [esp + 0x3c], eax
test eax, eax
je 0x10317260
push edi
push esi
call fcn.10319100
add ebx, eax
lea eax, [edi + 1]
push eax
push esi
mov dword [esp + 0x3ed0], ebx
call fcn.10319100
add ebp, eax
lea eax, [esp + 0x110]
push ebp
push ebx
push eax
mov dword [esp + 0x3ee0], ebp
call fcn.10315aa0
add edi, 2
add esp, 0x1c
cmp edi, dword [esp + 0x3c]
jb 0x10316504
jmp 0x10317254
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 8]
sar ecx, 3
cmp al, 6
mov dword [esp + 0x3c], ecx
sete byte [esp + 0x33]
xor edi, edi
test ecx, ecx
je 0x10317260
push edi
push esi
call fcn.10319100
mov cl, byte [esp + 0x3b]
add esp, 8
test cl, cl
je 0x10316582
add ebx, eax
mov dword [esp + 0x3ec0], ebx
jmp 0x1031658b
add ebp, eax
mov dword [esp + 0x3ec4], ebp
push ebp
lea eax, [esp + 0x104]
xor cl, 1
push ebx
push eax
mov byte [esp + 0x3f], cl
call fcn.10315aa0
inc edi
add esp, 0xc
cmp edi, dword [esp + 0x3c]
jb 0x10316565
jmp 0x10317254
mov ecx, dword [esi + 0xc]
xor edi, edi
sub ecx, dword [esi + 8]
sar ecx, 3
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], edi
cmp ecx, 6
jb 0x1031668a
nop dword [eax]
push edi
push esi
call fcn.10319100
lea edi, [ebx + eax]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x44], edi
lea ecx, [ebx + 1]
push ecx
push esi
call fcn.10319100
lea ecx, [ebx + 2]
mov ebp, eax
add ebp, dword [esp + 0x38]
push ecx
push esi
call fcn.10319100
mov ecx, dword [esp + 0x44]
add ecx, 3
push ecx
push esi
lea ebx, [edi + eax]
call fcn.10319100
mov ecx, dword [esp + 0x4c]
add ecx, 4
push ecx
push esi
lea edi, [eax + ebp]
call fcn.10319100
mov ecx, dword [esp + 0x54]
add eax, ebx
add ecx, 5
mov dword [esp + 0x48], eax
push ecx
push esi
call fcn.10319100
add eax, edi
push eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
push eax
push edi
push ebx
push ebp
push dword [esp + 0x80]
lea eax, [esp + 0x148]
push eax
call fcn.10315c20
mov edi, dword [esp + 0x78]
add esp, 0x4c
mov ebx, dword [esp + 0x20]
add edi, 6
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x3ec0], ebx
mov dword [esp + 0x3ec4], ebp
lea eax, [edi + 6]
mov dword [esp + 0x2c], edi
cmp eax, dword [esp + 0x34]
jbe 0x103165d0
mov eax, dword [esp + 0x24]
cmp al, 0x18
jne 0x1031725c
push edi
push esi
call fcn.10319100
add ebx, eax
lea eax, [edi + 1]
push eax
push esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3ed0], ebx
call fcn.10319100
add ebp, eax
lea eax, [esp + 0x110]
push ebp
push ebx
push eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x3ee0], ebp
call fcn.10315aa0
mov eax, dword [esi + 8]
add esp, 0x1c
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov eax, dword [esp + 0x14]
cmp eax, 0x10
jg 0x103173e3
inc eax
push eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0xac]
push eax
call fcn.103128f0
mov edx, eax
push esi
mov dword [esp + 0x1c], edx
call fcn.10319050
add esp, 0xc
cmp byte [esp + 0x24], 0x1d
push edx
push eax
push dword [esp + 0x4c]
je 0x1031673b
call fcn.10312d40
add esp, 0xc
test eax, eax
jne 0x103173e3
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
call fcn.10312bd0
add esp, 0xc
test eax, eax
jne 0x103173e3
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
mov eax, dword [esp + 0x14]
cmp eax, 1
jl 0x103173e3
dec eax
push eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0xac]
push eax
call fcn.103128f0
mov edi, dword [esp + 0x24]
mov edx, eax
add esp, 8
mov dword [esp + 0x10], edx
jmp 0x103162d4
push edx
call fcn.10312920
movzx edx, al
add esp, 4
lea ecx, [edx - 1]
cmp ecx, 0x24
ja case.0x103167a9.3
movzx ecx, byte [ecx + 0x10317664]
jmp dword [ecx*4 + 0x1031764c]
push 0
push 0x10390bb8
jmp 0x1031681a
push 0
push 0x10390bc4
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x3ed0]
push eax
lea eax, [esp + 0x3ed0]
push eax
push esi
call fcn.10319500
mov ebp, dword [esp + 0x3edc]
add esp, 0x18
mov ebx, dword [esp + 0x3ec0]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x103162d4
push 0
push 0x10390bd0
jmp 0x1031681a
push 1
push 0x10390bdc
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x3ed0]
push eax
lea eax, [esp + 0x3ed0]
push eax
push esi
call fcn.10319500
mov ebp, dword [esp + 0x3edc]
add esp, 0x18
mov ebx, dword [esp + 0x3ec0]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebx
jmp 0x103162d4
mov edi, dword [esp + 0x1c]
cmp byte [edi + 8], 0
jne case.0x1031687d.0
cmp al, 0x26
jae case.0x1031687d.0
cmp edx, 0x1e
ja case.0x1031687d.0
jmp dword [edx*4 + 0x1031768c]
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
add esp, 8
test eax, eax
je 0x103168c0
test edx, edx
je 0x103168c0
mov eax, 1
jmp 0x103162c6
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
add esp, 8
test eax, eax
jne 0x1031689d
test edx, edx
jne 0x1031689d
xor eax, eax
jmp 0x103162c6
push esi
call fcn.103190a0
xor ecx, ecx
test eax, eax
sete cl
push ecx
push esi
call fcn.10318fd0
add esp, 0xc
jmp 0x103162d0
push esi
call fcn.103190a0
cdq
xor eax, edx
sub eax, edx
push eax
push esi
call fcn.10319010
add esp, 0xc
jmp 0x103162d0
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
add eax, edx
push eax
push esi
call fcn.10319010
add esp, 0x10
jmp 0x103162d0
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
sub eax, edx
push eax
push esi
call fcn.10319010
add esp, 0x10
jmp 0x103162d0
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
push edx
push eax
call fcn.102dd070
push eax
push esi
call fcn.10319010
add esp, 0x18
jmp 0x103162d0
push esi
call fcn.103190a0
neg eax
push eax
push esi
call fcn.10319010
add esp, 0xc
jmp 0x103162d0
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
xor ecx, ecx
cmp eax, edx
sete cl
push ecx
push esi
call fcn.10318fd0
add esp, 0x10
jmp 0x103162d0
push esi
call fcn.103190a0
add esp, 4
jmp 0x103162d0
push esi
call fcn.10319050
push esi
mov edx, eax
call fcn.103190a0
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp edx, 0x1f
ja 0x103162c0
mov dword [esp + edx*4 + 0x3e24], eax
jmp 0x103162d0
push esi
call fcn.10319050
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
cmp eax, 0x1f
ja 0x103162d8
push dword [esp + eax*4 + 0x3e24]
push esi
call fcn.10319010
jmp 0x103162cd
push esi
call fcn.103190a0
push esi
mov ebx, eax
call fcn.103190a0
push esi
mov edi, eax
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
cmp edi, ebx
cmovle edx, eax
push edx
push esi
call fcn.10319010
mov ebx, dword [esp + 0x38]
add esp, 0x18
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 0x2e0]
mov ecx, dword [edi + 0x288]
mov eax, ecx
shl eax, 0xd
movzx edx, cx
xor ecx, eax
mov eax, ecx
inc edx
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
push edx
xor eax, ecx
push esi
mov dword [edi + 0x288], eax
call fcn.10319010
mov edx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
push edx
push eax
call fcn.102dd040
push eax
push esi
call fcn.10319010
add esp, 0x18
jmp 0x103162d0
push esi
call fcn.103190a0
mov edi, eax
add esp, 4
mov dword [esp + 0x34], edi
test edi, edi
jle 0x10316b12
push edi
push edi
call fcn.102dd070
lea ecx, [edi + 1]
add esp, 8
add ecx, eax
sar ecx, 1
mov dword [esp + 0x24], ecx
cmp ecx, edi
je 0x10316b14
mov esi, ecx
mov ebp, edi
push esi
push ebp
mov edi, esi
call fcn.102dd070
inc esi
add esp, 8
add esi, eax
sar esi, 1
cmp esi, edi
jne 0x10316ad6
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x54]
push ecx
push esi
call fcn.10319010
mov edx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
xor ecx, ecx
push ecx
push esi
call fcn.10319010
mov edx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
push esi
call fcn.103190a0
mov edi, eax
push edi
push esi
call fcn.10319010
push edi
push esi
call fcn.10319010
mov edx, dword [esp + 0x24]
add esp, 0x14
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
push esi
call fcn.103190a0
push esi
mov edx, eax
call fcn.103190a0
push edx
push esi
mov edi, eax
call fcn.10319010
push edi
push esi
call fcn.10319010
mov edx, dword [esp + 0x28]
add esp, 0x18
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
push esi
call fcn.10319050
mov ecx, dword [esi + 0xc]
add esp, 4
sub ecx, dword [esi + 8]
mov edx, dword [esp + 0x10]
sar ecx, 3
test ecx, ecx
je 0x103162d4
test eax, eax
js 0x10316bab
cmp eax, ecx
jb 0x10316ba9
xor ecx, ecx
jmp 0x10316bac
sub ecx, eax
dec ecx
push ecx
push esi
call fcn.10319100
push eax
push esi
call fcn.10319010
add esp, 0x10
jmp 0x103162d0
push esi
call fcn.10319050
push esi
mov edx, eax
call fcn.10319050
push edx
push eax
push esi
call fcn.10319170
add esp, 0x14
jmp 0x103162d0
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x10316bfc
cmp byte [esp + 0xe8], 0
jne case.0x1031633d.0
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x1b]
push 0
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x74]
push eax
push esi
push edi
call fcn.10319320
mov eax, dword [edi + 0xb0]
add esp, 0x18
cmp byte [eax + 0x231], 0
jne 0x103174a7
cmp byte [esp + 0x24], 0x13
jne 0x10316c64
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x10]
push eax
push edx
lea eax, [esp + 0xec]
push eax
call fcn.103192a0
mov eax, dword [esi + 8]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x103162d4
push dword [esp + 0x60]
lea eax, [esp + 0x2e60]
push eax
lea eax, [esp + 0x1f48]
push eax
lea eax, [esp + 0x2f14]
push edi
push eax
call fcn.10315380
mov edx, dword [esp + 0x24]
lea eax, [edi + 4]
xorps xmm0, xmm0
mov dword [esp + 0xf4], 0
movups xmmword [esp + 0xdc], xmm0
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x90]
add eax, dword [esp + 0xb0]
push eax
push edx
lea eax, [esp + 0xe4]
movq qword [esp + 0xf4], xmm0
push eax
call fcn.103192a0
push 0
push 0
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x2f3c]
push eax
call fcn.103153c0
mov eax, dword [esi + 8]
add esp, 0x38
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 2
jbe 0x10316d35
cmp byte [esp + 0x1b], 0
jne 0x10316d35
push 0
push esi
call fcn.10319100
mov ecx, dword [esp + 0x48]
add esp, 8
add eax, dword [esp + 0x48]
mov dword [ecx], eax
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x1b], 1
mov eax, dword [edi + 0xb0]
cmp byte [eax + 0x231], 0
jne 0x103174a7
push esi
call fcn.103190a0
add ebp, eax
push esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3ecc], ebp
call fcn.103190a0
add ebx, eax
lea eax, [esp + 0x108]
push ebp
push ebx
push eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3ed4], ebx
call fcn.10315a10
mov eax, dword [esi + 8]
add esp, 0x14
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x10316dc2
cmp byte [esp + 0x1b], 0
jne 0x10316dc2
push 0
push esi
call fcn.10319100
mov ecx, dword [esp + 0x48]
add esp, 8
add eax, dword [esp + 0x48]
mov dword [ecx], eax
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x1b], 1
mov eax, dword [edi + 0xb0]
cmp byte [eax + 0x231], 0
jne 0x103174a7
push esi
call fcn.103190a0
add ebx, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3ec4], ebx
jmp 0x103164cc
mov ecx, dword [esi + 0xc]
xor eax, eax
sub ecx, dword [esi + 8]
sar ecx, 3
mov dword [esp + 0x24], ecx
mov dword [esp + 0x3c], eax
cmp ecx, 6
jbe 0x10316e64
lea edi, [eax + 6]
push eax
push esi
call fcn.10319100
add ebx, eax
lea eax, [edi - 5]
push eax
push esi
mov dword [esp + 0x3ed0], ebx
call fcn.10319100
add ebp, eax
lea eax, [esp + 0x110]
push ebp
push ebx
push eax
mov dword [esp + 0x3ee0], ebp
call fcn.10315aa0
mov eax, dword [esp + 0x58]
add edi, 2
mov ecx, dword [esp + 0x40]
add eax, 2
add esp, 0x1c
mov dword [esp + 0x3c], eax
cmp edi, ecx
jb 0x10316e11
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebp
cmp eax, ecx
jae 0x1031725c
lea ecx, [eax + 2]
mov dword [esp + 0x2c], ecx
lea eax, [ecx - 2]
push eax
push esi
call fcn.10319100
lea edi, [ebx + eax]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x3c], edi
lea ecx, [ebx - 1]
push ecx
push esi
call fcn.10319100
mov ebp, eax
add ebp, dword [esp + 0x38]
push ebx
push esi
call fcn.10319100
mov ecx, dword [esp + 0x44]
inc ecx
push ecx
push esi
lea ebx, [edi + eax]
call fcn.10319100
mov ecx, dword [esp + 0x4c]
add ecx, 2
push ecx
push esi
lea edi, [eax + ebp]
call fcn.10319100
add eax, ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
add eax, 3
push eax
push esi
call fcn.10319100
add eax, edi
push eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
push eax
push edi
push ebx
push ebp
push dword [esp + 0x78]
lea eax, [esp + 0x148]
push eax
call fcn.10315c20
mov ecx, dword [esp + 0x78]
add esp, 0x4c
mov ebx, dword [esp + 0x20]
add ecx, 6
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x3ec0], ebx
mov dword [esp + 0x3ec4], ebp
lea eax, [ecx - 2]
mov dword [esp + 0x2c], ecx
cmp eax, dword [esp + 0x24]
jb 0x10316e73
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 3
mov eax, edi
and eax, 0xfffffffd
sub edi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], edi
cmp edi, eax
jae 0x10317260
sub eax, edi
test al, 1
je 0x10316f74
push edi
push esi
call fcn.10319100
add eax, ebx
add esp, 8
inc edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edi
jmp 0x10316f78
mov dword [esp + 0x2c], ebx
push edi
push esi
call fcn.10319100
lea ecx, [edi + 1]
push ecx
push esi
lea ebx, [eax + ebp]
call fcn.10319100
add eax, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
lea eax, [edi + 2]
push eax
push esi
call fcn.10319100
mov ecx, dword [esp + 0x3c]
add ecx, 3
push ecx
push esi
lea edi, [ebx + eax]
call fcn.10319100
lea ebp, [edi + eax]
mov eax, dword [esp + 0x40]
push ebp
push eax
push edi
push eax
push ebx
push dword [esp + 0x60]
lea eax, [esp + 0x138]
push eax
call fcn.10315c20
mov edi, dword [esp + 0x60]
add esp, 0x3c
mov eax, dword [esp + 0x34]
add edi, 4
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x3ec0], ebx
mov dword [esp + 0x3ec4], ebp
mov dword [esp + 0x24], edi
cmp edi, eax
jb 0x10316f57
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 3
mov eax, edi
and eax, 0xfffffffd
sub edi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], edi
cmp edi, eax
jae 0x10317260
nop
sub eax, edi
test al, 1
je 0x1031704d
push edi
push esi
call fcn.10319100
add eax, ebp
add esp, 8
inc edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edi
jmp 0x10317051
mov dword [esp + 0x2c], ebp
push edi
push esi
call fcn.10319100
lea ecx, [edi + 1]
mov ebx, eax
add ebx, dword [esp + 0x28]
push ecx
push esi
call fcn.10319100
mov ecx, dword [esp + 0x34]
add ecx, 2
push ecx
push esi
lea edi, [ebx + eax]
call fcn.10319100
mov ebp, eax
mov eax, dword [esp + 0x3c]
add ebp, dword [esp + 0x44]
add eax, 3
push eax
push esi
call fcn.10319100
push ebp
add eax, edi
push eax
push ebp
push edi
push dword [esp + 0x5c]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x134]
push ebx
push eax
call fcn.10315c20
mov edi, dword [esp + 0x60]
add esp, 0x3c
mov eax, dword [esp + 0x34]
add edi, 4
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x3ec0], ebx
mov dword [esp + 0x3ec4], ebp
mov dword [esp + 0x24], edi
cmp edi, eax
jb 0x10317030
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
mov dword [esi + 0xc], eax
jmp 0x103162d4
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 3
cmp al, 0x1f
mov ecx, edi
sete al
and ecx, 0xfffffffd
sub edi, ecx
mov dword [esp + 0x3c], ecx
cmp edi, ecx
jae 0x10317260
nop dword [eax]
push edi
push esi
test al, al
je 0x1031719f
call fcn.10319100
add eax, ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], eax
lea eax, [edi + 1]
push eax
push esi
mov dword [esp + 0x44], eax
call fcn.10319100
lea ecx, [edi + 2]
mov ebx, eax
add ebx, dword [esp + 0x30]
push ecx
push esi
mov dword [esp + 0x44], ebx
call fcn.10319100
lea ecx, [edi + 3]
add eax, ebp
push ecx
push esi
mov dword [esp + 0x44], eax
call fcn.10319100
mov ebp, eax
add esp, 0x20
mov eax, dword [esp + 0x3c]
add ebp, dword [esp + 0x24]
sub eax, edi
cmp eax, 5
jne 0x10317193
lea eax, [edi + 4]
push eax
push esi
call fcn.10319100
mov edi, dword [esp + 0x3c]
mov ebx, eax
mov eax, dword [esp + 0x34]
add esp, 8
add ebx, eax
xor cl, cl
mov byte [esp + 0x33], cl
jmp 0x10317216
mov eax, dword [esp + 0x2c]
xor cl, cl
mov byte [esp + 0x33], cl
jmp 0x10317216
mov dword [esp + 0x28], ebx
call fcn.10319100
add eax, ebp
mov dword [esp + 0x30], eax
lea eax, [edi + 1]
push eax
push esi
mov dword [esp + 0x44], eax
call fcn.10319100
lea ebp, [ebx + eax]
lea eax, [edi + 2]
mov dword [esp + 0x3c], ebp
push eax
push esi
call fcn.10319100
add eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
lea eax, [edi + 3]
push eax
push esi
call fcn.10319100
add esp, 0x20
lea ebx, [eax + ebp]
mov eax, dword [esp + 0x3c]
sub eax, edi
cmp eax, 5
jne 0x10317209
lea eax, [edi + 4]
push eax
push esi
call fcn.10319100
mov edi, dword [esp + 0x3c]
mov ebp, eax
add esp, 8
add ebp, dword [esp + 0x24]
jmp 0x1031720d
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x33], 1
push ebp
push ebx
push dword [esp + 0x2c]
push eax
push dword [esp + 0x38]
lea eax, [esp + 0x114]
push dword [esp + 0x34]
push eax
call fcn.10315c20
mov al, byte [esp + 0x4f]
add edi, 4
add esp, 0x1c
mov dword [esp + 0x3ec0], ebx
mov dword [esp + 0x3ec4], ebp
cmp edi, dword [esp + 0x3c]
jb 0x10317110
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
jmp 0x103162d4
push edx
call fcn.10312920
mov edx, dword [esp + 0x14]
mov edi, eax
push edx
call fcn.10312920
movsx ecx, ax
shl edi, 8
movsx eax, di
or ecx, eax
push ecx
push esi
call fcn.10318fd0
mov edi, dword [esp + 0x2c]
add esp, 0x10
jmp 0x103162d0
cmp al, 0xf6
ja 0x103172c0
lea eax, [edi - 0x8b]
push eax
push esi
call fcn.10318fd0
mov edx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
push edx
cmp al, 0xfa
ja 0x103172ec
call fcn.10312920
shl edi, 8
add edi, 0xffff096c
add eax, edi
push eax
push esi
call fcn.10318fd0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
cmp al, 0xfe
ja 0x10317318
call fcn.10312920
shl edi, 8
mov ecx, 0xfa94
sub ecx, edi
sub ecx, eax
push ecx
push esi
call fcn.10318fd0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x1c]
jmp 0x103162d4
call fcn.10312920
mov edi, dword [esp + 0x14]
mov ebp, eax
push edi
call fcn.10312920
push edi
mov ebx, eax
call fcn.10312920
mov edx, dword [esp + 0x1c]
mov edi, eax
push edx
call fcn.10312920
shl ebp, 8
or ebp, ebx
shl ebp, 8
or ebp, edi
shl ebp, 8
or eax, ebp
push eax
push esi
call fcn.10319010
mov ebp, dword [esp + 0x40]
add esp, 0x18
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
jmp 0x103162d0
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
je 0x1031737a
cmp eax, 5
jne 0x10317396
cmp byte [esp + 0x1b], 0
jne 0x10317396
push 0
push esi
call fcn.10319100
mov ecx, dword [esp + 0x48]
add esp, 8
add eax, dword [esp + 0x48]
mov dword [ecx], eax
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0xb0]
cmp byte [eax + 0x231], 0
jne 0x103174a7
lea eax, [esp + 0x100]
push eax
call fcn.10315e10
add esp, 4
cmp byte [edi + 8], 0
jne 0x103174a7
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x103174a7
cmp byte [esp + 0x3ebc], 0
je 0x103173ed
mov eax, 0x12
jmp 0x103174ab
push esi
call fcn.10319050
push esi
mov edx, eax
call fcn.10319050
push esi
mov edi, eax
call fcn.103190a0
push esi
mov ebx, eax
call fcn.103190a0
mov ebp, eax
lea eax, [esp + 0xd8]
push eax
push edx
push dword [esp + 0x5c]
call fcn.10312c20
add esp, 0x1c
test eax, eax
jne 0x103174ab
lea eax, [esp + 0x54]
push eax
push ebx
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0xd0]
push ebp
push 1
push dword [esp + 0x5c]
push dword [esp + 0x64]
push eax
push ebx
call fcn.10316010
mov ebp, dword [esp + 0x64]
lea eax, [esp + 0xe8]
push eax
push ebp
call fcn.10312cd0
lea eax, [esp + 0xf0]
push eax
push edi
push ebp
call fcn.10312c20
add esp, 0x34
test eax, eax
jne 0x103174ab
lea eax, [esp + 0x54]
push eax
push 0
push 0
push 1
push dword [esp + 0x5c]
lea eax, [esp + 0xdc]
push dword [esp + 0x64]
push eax
push ebx
call fcn.10316010
lea eax, [esp + 0xe8]
push eax
push ebp
call fcn.10312cd0
add esp, 0x28
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x64]
test edx, edx
je 0x103174ba
cmp dword [edx], 0
jne 0x103174ba
mov dword [edx], eax
push dword [esp + 0x2e78]
mov dword [esp + 0x2e6c], 0
push dword [esp + 0x2e60]
mov dword [esp + 0x2e78], 0
mov dword [esp + 0x2e7c], 0
call fcn.102ddbf0
push dword [esp + 0x8c]
mov dword [esp + 0x2e84], 0
push dword [esp + 0x74]
mov dword [esp + 0x84], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
call fcn.102ddbf0
push dword [esp + 0xb4]
mov dword [esp + 0x98], 0
push dword [esp + 0x9c]
mov dword [esp + 0xac], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
call fcn.102ddbf0
push dword [esp + 0xdc]
mov dword [esp + 0xc0], 0
push dword [esp + 0xc4]
call fcn.102ddbf0
add esp, 0x20
test esi, esi
je 0x103175aa
push dword [esi + 8]
mov edi, dword [esi]
push edi
call fcn.102ddbf0
push esi
push edi
mov dword [esi + 8], 0
call fcn.102ddbf0
add esp, 0x10
mov ecx, dword [esp + 0x3ea4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1033bd36
add esp, 0x3e98
ret
xor eax, eax
jmp 0x103174ab