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

Disassembly:
mov eax, 0x13c8
call fcn.03f0f90a
push ebx
push ebp
push esi
push edi
push dword [0x1010975c]
mov ebx, ecx
mov dword [esp + 0x1c], ebx
call dword [0x100df26c]
inc eax
push eax
push dword [0x1010975c]
call dword [0x100df268]
push 1
lea ecx, [esp + 0x64]
call fcn.03ec0540
lea eax, [esp + 0x13dc]
push eax
lea ecx, [esp + 0x170]
call fcn.03ebff70
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x170]
call fcn.03ec00c0
push 1
push 0x100e0cd8
lea ecx, [esp + 0xdc]
push dword [eax + 4]
push dword [eax]
call fcn.03ebfc70
mov ecx, eax
call fcn.03ebfd50
mov ebp, 0x3a
test eax, eax
je 0x3e3f63b
mov eax, dword [0x100e0cec]
lea ecx, [esp + 0x16c]
movq xmm0, qword [0x100e0ce4]
mov dword [esp + 0x6c], eax
mov ax, word [0x100e0cf0]
movq qword [esp + 0x64], xmm0
mov word [esp + 0x70], ax
call fcn.03ebfe60
cmp ax, 6
jb 0x3e3f63b
push 5
lea ecx, [esp + 0x170]
call fcn.03ec04d0
cmp bp, ax
jne 0x3e3f63b
push 4
lea ecx, [esp + 0x170]
call fcn.03ec04d0
cmp dword [ebx + 4], 0
mov word [esp + 0x6c], ax
je 0x3e3f63b
cmp dword [0x10109614], 0
je 0x3e3f63b
push 4
lea ecx, [esp + 0x170]
call fcn.03ec04d0
movzx ecx, ax
mov eax, dword [0x101095f8]
movzx edi, word [eax + ecx*2]
sub edi, 0x41
cmp edi, 0x20
jae 0x3e3f63b
mov esi, dword [0x1010935c]
lea eax, [esp + 0x374]
push 0
push 0x24
push eax
push 0x17
call dword [0x100df260]
push eax
mov eax, dword [esi + 0x13ac]
lea ecx, [esi + 0x13ac]
call dword [eax + 0x24]
call eax
test eax, eax
jne 0x3e3f63b
mov al, byte [esp + edi + 0x378]
test al, al
je 0x3e3f467
cmp al, 1
je 0x3e3f467
cmp al, 4
jne 0x3e3f63b
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], edi
lea esi, [ebx + 0x40]
push eax
mov ecx, esi
call fcn.03e3eca0
test eax, eax
jne 0x3e40488
push 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
call fcn.03e3e940
push edi
mov ecx, esi
call fcn.03e3efc0
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0x14]
push eax
push ebp
lea eax, [esp + 0x74]
push eax
call dword [0x10109614]
mov ebx, eax
mov dword [esp + 0x38], edi
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call fcn.03ea0c00
cmp ebx, 0xea
jne 0x3e3f52a
mov dword [esp + 0x38], edi
jmp 0x3e3f4e0
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
add eax, 0x100
push eax
mov dword [esp + 0x18], eax
call fcn.03e3e940
push edi
mov ecx, esi
call fcn.03e3efc0
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0x14]
push eax
push ebp
lea eax, [esp + 0x74]
push eax
call dword [0x10109614]
mov ebx, eax
mov ecx, esi
lea eax, [esp + 0x38]
push eax
call fcn.03ea0c00
cmp ebx, 0xea
je 0x3e3f4e0
test ebx, ebx
jne 0x3e3f62e
push 0x100e0cf4
lea ecx, [esp + 0x90]
call fcn.03e36fc0
lea eax, [ebp + 2]
push eax
lea ecx, [esp + 0x90]
call fcn.03e3e2b0
push dword [esp + 0x8c]
lea ecx, [esp + 0xe8]
call fcn.03ebfc30
mov ecx, eax
call fcn.03ebfc90
mov esi, dword [esp + 0x13e8]
mov ecx, dword [esp + 0x18]
push esi
push dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.03e3f1a0
mov ecx, esi
call fcn.03ebfc90
cmp word [eax], bx
jbe 0x3e3f5c0
mov ecx, esi
call fcn.03ebfe60
dec ax
mov ecx, esi
movzx eax, ax
push eax
call fcn.03ec04d0
mov ecx, 0x5c
cmp cx, ax
je 0x3e3f5c0
push 0x100e09b8
mov ecx, esi
call fcn.03ec0210
lea ecx, [esp + 0x16c]
call fcn.03ebfe60
cmp ax, 7
jbe 0x3e3f614
lea ecx, [esp + 0x16c]
call fcn.03ebfe60
sub ax, 7
lea ecx, [esp + 0x16c]
movzx eax, ax
push eax
call fcn.03ebfc90
lea ecx, [esp + 0xf8]
mov eax, dword [eax + 4]
add eax, 0xe
push eax
call fcn.03ebfc50
mov ecx, eax
call fcn.03ebfc90
push eax
mov ecx, esi
call fcn.03ec0190
lea ecx, [esp + 0x8c]
call fcn.03e37570
lea ecx, [esp + 0x2c]
call fcn.03e375a0
jmp 0x3e404a8
lea ecx, [esp + 0x2c]
call fcn.03e375a0
mov ebx, dword [esp + 0x18]
lea edi, [ebx + 0x18]
push edi
lea ecx, [esp + 0x40]
mov dword [esp + 0x28], edi
call fcn.03e4f5a0
lea eax, [esp + 0x58]
mov ecx, edi
push eax
call fcn.03e3eed0
mov esi, dword [esp + 0x58]
cmp esi, dword [edi + 4]
jne 0x3e3f669
xor ebx, ebx
test esi, esi
je 0x3e3f681
jmp 0x3e3f67b
mov ebx, esi
test esi, esi
je 0x3e3f681
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
test ebx, ebx
je 0x3e3f7c0
lea esp, [esp]
lea ebp, [ebx + 0x210]
test ebx, ebx
je 0x3e3f6a0
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
push ebx
lea eax, [esp + 0x38]
mov ecx, edi
push eax
call fcn.03e41390
mov esi, dword [esp + 0x34]
cmp esi, dword [edi + 4]
jne 0x3e3f6d4
xor edi, edi
test esi, esi
je 0x3e3f6c6
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov dword [esp + 0x34], edi
test ebx, ebx
je 0x3e3f6d0
mov eax, dword [ebx]
push ebx
call dword [eax + 0xc]
mov ebx, edi
jmp 0x3e3f704
mov edi, esi
test esi, esi
je 0x3e3f6ee
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov dword [esp + 0x34], 0
test ebx, ebx
je 0x3e3f6f8
mov eax, dword [ebx]
push ebx
call dword [eax + 0xc]
mov ebx, edi
test edi, edi
je 0x3e3f704
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
push ebp
lea ecx, [esp + 0x7ac]
call fcn.03ebff70
push 1
lea ecx, [esp + 0x170]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x7b0]
call fcn.03ebfc90
push eax
call dword [0x101093e4]
test eax, eax
je 0x3e3f9ee
lea ecx, [esp + 0x7a8]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x9b4]
call fcn.03ebff70
push 0x100e09b8
lea ecx, [esp + 0x9b4]
call fcn.03ec0210
push 1
lea ecx, [esp + 0x9b4]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x174]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x160]
call fcn.03ebfc10
mov ecx, eax
call fcn.03ebfcf0
test eax, eax
jne 0x3e3f95d
lea ecx, [esp + 0x9b0]
call fcn.03ebffe0
lea ecx, [esp + 0x7a8]
call fcn.03ebffe0
test edi, edi
mov edi, dword [esp + 0x24]
jne 0x3e3f690
cmp byte [esp + 0x40], 0
mov ebp, dword [0x100df280]
je 0x3e3f806
mov esi, dword [esp + 0x3c]
dec dword [esi + 0x10]
jne 0x3e3f806
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
call dword [0x100df28c]
add esi, 0xc
cmp dword [esi], 0
jle 0x3e3f806
push esi
call dword [0x100df290]
mov eax, dword [esp + 0x3c]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call ebp
mov ebx, dword [esp + 0x18]
cmp dword [ebx + 4], 0
je 0x3e3f8b0
push 0x100e0d04
lea ecx, [esp + 0x78]
call fcn.03ebfc30
push 1
lea ecx, [esp + 0x78]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x174]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x150]
call fcn.03ebfc10
mov ecx, eax
call fcn.03ebfcf0
test eax, eax
je 0x3e3f8b0
lea ecx, [esp + 0x74]
call fcn.03ebfe60
movzx esi, ax
lea ecx, [esp + 0x16c]
add esi, esi
call fcn.03ebfc90
lea ecx, [esp + 0x16c]
mov edi, dword [eax + 4]
add edi, esi
call fcn.03ebfe60
movzx esi, ax
lea ecx, [esp + 0x16c]
add esi, esi
call fcn.03ebfc90
mov eax, dword [eax + 4]
add eax, esi
cmp edi, eax
je 0x3e3f8b0
mov edx, 0x5c
lea esp, [esp]
cmp dx, word [edi]
je 0x3e3fa6f
add edi, 2
cmp edi, eax
jne 0x3e3f8a0
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
xor esi, esi
mov edi, dword [eax + 4]
mov eax, 0x5c
cmp ax, word [edi]
je 0x3e3f8e3
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
movzx ecx, si
add ecx, ecx
movzx eax, word [eax]
cmp ecx, eax
jne 0x3e3f938
lea ecx, [esp + 0xbb8]
call fcn.03ebffd0
lea eax, [esp + 0xbb8]
push eax
push esi
lea ecx, [esp + 0x174]
call fcn.03ebfc90
lea ecx, [esp + 0x12c]
mov eax, dword [eax + 4]
push eax
call fcn.03ebfc50
mov ecx, eax
call fcn.03ebfc90
push eax
call fcn.03ea74b0
add esp, 8
test eax, eax
je 0x3e3fb13
lea ecx, [esp + 0xbb8]
call fcn.03ebffe0
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
movzx ecx, si
add ecx, ecx
movzx eax, word [eax]
cmp ecx, eax
je 0x3e3fb92
inc esi
add edi, 2
jmp 0x3e3f8c1
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x7a8]
push eax
call fcn.03ec0000
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0x9b0]
mov ax, word [eax]
shr ax, 1
movzx esi, ax
call fcn.03ebfe60
movzx edi, ax
lea ecx, [esp + 0x9b0]
add edi, edi
call fcn.03ebfe60
sub si, ax
lea ecx, [esp + 0x16c]
movzx eax, si
push eax
call fcn.03ebfc90
lea ecx, [esp + 0xc0]
mov eax, dword [eax + 4]
add eax, edi
push eax
call fcn.03ebfc50
mov ecx, eax
call fcn.03ebfc90
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.03ec0060
lea ecx, [esp + 0x9b0]
call fcn.03ebffe0
jmp 0x3e3fa0e
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x7a8]
push eax
call fcn.03ec0000
mov ecx, dword [esp + 0x13e8]
call fcn.03ec0410
lea ecx, [esp + 0x7a8]
call fcn.03ebffe0
cmp byte [esp + 0x40], 0
je 0x3e404a8
mov esi, dword [esp + 0x3c]
dec dword [esi + 0x10]
jne 0x3e404a8
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
call dword [0x100df28c]
add esi, 0xc
cmp dword [esi], 0
jle 0x3e404a8
push esi
call dword [0x100df290]
mov eax, dword [esp + 0x3c]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100df280]
jmp 0x3e404a8
add edi, 2
cmp edi, eax
je 0x3e3f8b0
mov esi, 0x3a
nop
movzx ecx, word [edi]
cmp dx, cx
je 0x3e3f8b0
cmp si, cx
je 0x3e3fa9d
add edi, 2
cmp edi, eax
jne 0x3e3fa80
jmp 0x3e3f8b0
cmp edi, eax
je 0x3e3f8b0
cmp dx, word [edi]
je 0x3e3fab6
add edi, 2
cmp edi, eax
jne 0x3e3faa5
jmp 0x3e3f8b0
push 0x100e0cf4
lea ecx, [esp + 0xfcc]
call fcn.03ebfe70
push edi
lea ecx, [esp + 0xfcc]
call fcn.03ec0210
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xfcc]
call fcn.03ec00c0
push dword [esp + 0x13e8]
mov ecx, ebx
push dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.03e3f1a0
lea ecx, [esp + 0xfc8]
call fcn.03ebffe0
jmp 0x3e404a8
lea eax, [esp + 0xbb8]
push eax
lea ecx, [esp + 0xdc4]
call fcn.03ebff70
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0xdc]
mov ax, word [eax]
shr ax, 1
sub ax, si
movzx eax, ax
push eax
push edi
call fcn.03ebfc50
mov ecx, eax
call fcn.03ebfc90
push eax
lea ecx, [esp + 0xdc4]
call fcn.03ec0190
lea eax, [esp + 0xdc0]
push eax
lea ecx, [esp + 0x170]
call fcn.03ec0000
lea ecx, [esp + 0xdc0]
call fcn.03ebffe0
lea ecx, [esp + 0xbb8]
call fcn.03ebffe0
jmp 0x3e3f8b0
lea esi, [ebx + 0x24]
mov dword [esp + 0x44], esi
call dword [0x100df284]
mov edi, eax
lea ecx, [esi + 8]
cmp edi, dword [ecx]
je 0x3e3fbc7
cmp dword [ecx], 0
jne 0x3e3fbf0
push 0
push edi
push ecx
call dword [0x100df288]
test eax, eax
sete al
test al, al
je 0x3e3fbf0
mov dword [esi + 0x10], 0
inc dword [esi + 0x10]
mov byte [esp + 0x13], 1
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x4c]
push eax
mov ecx, edi
call fcn.03e3eed0
mov esi, dword [esp + 0x4c]
cmp esi, dword [edi + 4]
jne 0x3e3fc04
xor ebx, ebx
test esi, esi
je 0x3e3fc1c
jmp 0x3e3fc16
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.03e34a50
test al, al
jne 0x3e3fbc7
mov byte [esp + 0x13], al
jmp 0x3e3fbcf
mov ebx, esi
test esi, esi
je 0x3e3fc1c
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
test ebx, ebx
je 0x3e3fd68
lea ebp, [ebx + 0x210]
test ebx, ebx
je 0x3e3fc34
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
push ebx
lea eax, [esp + 0x20]
mov ecx, edi
push eax
call fcn.03e41390
mov esi, dword [esp + 0x1c]
cmp esi, dword [edi + 4]
jne 0x3e3fc68
xor edi, edi
test esi, esi
je 0x3e3fc5a
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov dword [esp + 0x1c], edi
test ebx, ebx
je 0x3e3fc64
mov eax, dword [ebx]
push ebx
call dword [eax + 0xc]
mov ebx, edi
jmp 0x3e3fc98
mov edi, esi
test esi, esi
je 0x3e3fc82
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov dword [esp + 0x1c], 0
test ebx, ebx
je 0x3e3fc8c
mov eax, dword [ebx]
push ebx
call dword [eax + 0xc]
mov ebx, edi
test edi, edi
je 0x3e3fc98
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
push ebp
lea ecx, [esp + 0x39c]
call fcn.03ebff70
push 1
lea ecx, [esp + 0x170]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x3a0]
call fcn.03ebfc90
push eax
call dword [0x101093e4]
test eax, eax
je 0x3e3ff87
lea ecx, [esp + 0x398]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x5a4]
call fcn.03ebff70
push 0x100e09b8
lea ecx, [esp + 0x5a4]
call fcn.03ec0210
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x170]
call fcn.03ec00c0
push 1
lea ecx, [esp + 0x5a4]
mov esi, eax
call fcn.03ebfc90
push eax
push dword [esi + 4]
lea ecx, [esp + 0xf8]
push dword [esi]
call fcn.03ebfc70
mov ecx, eax
call fcn.03ebfcf0
test eax, eax
jne 0x3e3fef6
lea ecx, [esp + 0x5a0]
call fcn.03ebffe0
lea ecx, [esp + 0x398]
call fcn.03ebffe0
test edi, edi
mov edi, dword [esp + 0x24]
jne 0x3e3fc24
mov ebp, dword [0x100df280]
cmp byte [esp + 0x13], 0
je 0x3e3fdaa
mov esi, dword [esp + 0x44]
dec dword [esi + 0x10]
jne 0x3e3fdaa
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
mov eax, dword [0x100df28c]
call eax
add esi, 0xc
cmp dword [esi], 0
jle 0x3e3fdaa
mov eax, dword [0x100df290]
push esi
call eax
mov eax, dword [esp + 0x44]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call ebp
push 0
push 0x40
lea ecx, [esp + 0x174]
call fcn.03ebfc90
push eax
push 0
lea ecx, [esp + 0x114]
call fcn.03ebfbe0
mov eax, dword [esp + 0x18]
cmp dword [eax + 4], 0
je 0x3e40108
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0x16c]
mov ax, word [eax]
shr ax, 1
movzx edi, ax
mov dword [esp + 0x18], edi
movzx ebp, di
call fcn.03ebfc90
movzx ecx, di
xor esi, esi
mov dword [esp + 0x14], esi
mov eax, dword [eax + 4]
lea ebx, [eax + ecx*2]
mov edi, edi
mov eax, 0x5c
cmp ax, word [ebx]
je 0x3e3fe23
cmp bp, di
jne 0x3e400ce
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [ebp*2]
push 0x21
push 3
mov word [eax], cx
lea ecx, [esp + 0x104]
mov esi, dword [0x1010935c]
mov dword [esp + 0x28], 0
call fcn.03ebfbb0
mov ecx, eax
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x110]
call fcn.03ebfc90
push eax
push 0x100000
lea eax, [esp + 0x34]
push eax
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
call dword [eax + 0x24]
call eax
test eax, eax
jne 0x3e400a8
mov edi, 0x400
xor esi, esi
test edi, edi
je 0x3e3fea5
push edi
call fcn.03f03830
add esp, 4
mov esi, eax
mov ecx, dword [0x1010935c]
lea eax, [esp + 0x98]
push eax
push edi
add ecx, 0x10ac
push esi
push 1
push dword [esp + 0x30]
mov eax, dword [ecx]
call dword [eax + 0x24]
call eax
cmp eax, 0xc0000004
je 0x3e3fee1
cmp eax, 0x80000005
je 0x3e3fee1
cmp eax, 0xc0000023
jne 0x3e4000a
add edi, 0x100
test esi, esi
je 0x3e3fe94
push esi
call fcn.03f03820
add esp, 4
jmp 0x3e3fe94
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x398]
push eax
call fcn.03ec0000
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0x5a0]
mov ax, word [eax]
shr ax, 1
movzx esi, ax
call fcn.03ebfe60
movzx edi, ax
lea ecx, [esp + 0x5a0]
add edi, edi
call fcn.03ebfe60
sub si, ax
lea ecx, [esp + 0x16c]
movzx eax, si
push eax
call fcn.03ebfc90
lea ecx, [esp + 0x140]
mov eax, dword [eax + 4]
add eax, edi
push eax
call fcn.03ebfc50
mov ecx, eax
call fcn.03ebfc90
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.03ec0060
lea ecx, [esp + 0x5a0]
call fcn.03ebffe0
jmp 0x3e3ffa7
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x398]
push eax
call fcn.03ec0000
mov ecx, dword [esp + 0x13e8]
call fcn.03ec0410
lea ecx, [esp + 0x398]
call fcn.03ebffe0
cmp byte [esp + 0x13], 0
je 0x3e404a8
mov esi, dword [esp + 0x44]
dec dword [esi + 0x10]
jne 0x3e404a8
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
mov eax, dword [0x100df28c]
call eax
add esi, 0xc
cmp dword [esi], 0
jle 0x3e404a8
mov eax, dword [0x100df290]
push esi
call eax
mov eax, dword [esp + 0x44]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100df280]
jmp 0x3e404a8
test eax, eax
jne 0x3e40097
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x11d0]
sub eax, ebp
push eax
push ebx
call fcn.03ebfef0
push dword [esi + 4]
lea ecx, [esp + 0x170]
push dword [esi]
call fcn.03ec0060
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x11d4]
call fcn.03ec00c0
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x170]
call fcn.03ec0190
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0x11d0]
mov dword [esp + 0x14], 1
mov ax, word [eax]
shr ax, 1
movzx edi, ax
mov dword [esp + 0x18], edi
call fcn.03ebffe0
push esi
call fcn.03f03820
add esp, 4
jmp 0x3e400a8
test esi, esi
je 0x3e400a4
push esi
call fcn.03f03820
add esp, 4
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x3e400ca
cmp eax, 0xffffffff
je 0x3e400ca
push eax
call fcn.03ef8890
mov ecx, dword [esp + 0x20]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
cmp dword [eax + 4], ebx
je 0x3e400f2
add ebp, 0xffff
sub ebx, 2
test esi, esi
je 0x3e3fe10
jmp 0x3e40108
test esi, esi
jne 0x3e40108
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [edi + edi]
mov word [eax], cx
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0x16c]
xor edi, edi
mov ebx, dword [eax + 4]
call fcn.03ebfc90
mov esi, 0x5c
mov ax, word [eax]
shr ax, 1
movzx ebp, ax
cmp si, word [ebx]
je 0x3e40141
cmp di, bp
jne 0x3e4024a
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [edi + edi]
mov dword [esp + 0x1c], 0
mov word [eax], cx
cmp si, word [ebx]
jne 0x3e40178
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
mov dword [esp + 0x1c], 1
add word [eax], 2
mov esi, dword [0x1010935c]
lea ecx, [esp + 0x14c]
push 0x21
push 3
mov dword [esp + 0x30], 0
call fcn.03ebfbb0
mov ecx, eax
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x110]
call fcn.03ebfc90
push eax
push 0x100001
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
call dword [eax + 0x24]
call eax
test eax, eax
jne 0x3e40233
push 0x400
call fcn.03f03830
mov esi, dword [0x1010935c]
lea ecx, [esp + 0x120]
add esp, 4
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x400
push 1
push 0
push 0
push 3
push 0x400
push eax
call fcn.03ebfbb0
mov ecx, eax
call fcn.03ebfc90
push eax
mov eax, dword [esi + 0x9fc]
lea ecx, [esi + 0x9fc]
push 0
push 0
push 0
push dword [esp + 0x50]
call dword [eax + 0x24]
call eax
test eax, eax
je 0x3e40253
lea ecx, [esp + 0x50]
call fcn.03e375a0
lea ecx, [esp + 0x28]
call fcn.03e3e990
cmp di, bp
je 0x3e402ef
mov esi, 0x5c
inc edi
add ebx, 2
jmp 0x3e40133
mov ebx, dword [esp + 0x13e4]
lea eax, [esp + 0x16c]
push eax
mov ecx, ebx
call fcn.03ec0000
cmp dword [esp + 0x1c], 0
je 0x3e4027f
mov ecx, ebx
call fcn.03ebfc90
mov ecx, 0xfffe
add word [eax], cx
cmp bp, di
jne 0x3e40297
push 0x100e03dc
lea ecx, [esp + 0x160]
call fcn.03ebfc30
jmp 0x3e402c0
sub ebp, edi
lea ecx, [esp + 0x16c]
dec ebp
push ebp
call fcn.03ebfc90
movzx ecx, di
mov eax, dword [eax + 4]
lea eax, [eax + ecx*2]
add eax, 2
lea ecx, [esp + 0x168]
push eax
call fcn.03ebfc50
mov ecx, eax
call fcn.03ebfc90
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.03ec0060
lea ecx, [esp + 0x50]
call fcn.03e375a0
lea ecx, [esp + 0x28]
call fcn.03e3e990
jmp 0x3e4046c
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [ebp*2]
push 1
push 0x100e0cd8
mov word [eax], cx
lea ecx, [esp + 0x174]
call fcn.03ebfc90
push eax
lea ecx, [esp + 0x140]
call fcn.03ebfc10
mov ecx, eax
call fcn.03ebfd50
test eax, eax
je 0x3e40488
mov eax, dword [0x100e0cec]
lea ecx, [esp + 0x16c]
movq xmm0, qword [0x100e0ce4]
mov dword [esp + 0x84], eax
movzx eax, word [0x100e0cf0]
movq qword [esp + 0x7c], xmm0
mov word [esp + 0x88], ax
call fcn.03ebfc90
mov ecx, 0xfffe
movzx eax, word [eax]
and ax, cx
cmp ax, 0xc
jb 0x3e40488
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
mov ecx, 0x3a
mov eax, dword [eax + 4]
cmp cx, word [eax + 0xa]
jne 0x3e40488
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0xac]
mov eax, dword [eax + 4]
mov ax, word [eax + 8]
mov word [esp + 0x84], ax
lea eax, [esp + 0x7c]
push eax
call fcn.03ebfc30
mov ecx, eax
call fcn.03ebfc90
mov ebx, dword [esp + 0x13e4]
mov ecx, ebx
push dword [eax + 4]
push dword [eax]
call fcn.03ec0060
lea ecx, [esp + 0x16c]
mov edi, 6
call fcn.03ebfc90
cmp word [eax], 0xc
jne 0x3e4040c
push 0x100e03dc
lea ecx, [esp + 0xb8]
call fcn.03ebfc30
jmp 0x3e40454
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
mov esi, dword [eax + 4]
mov eax, 0x5c
add esi, 0xc
cmp ax, word [esi]
jne 0x3e4042e
add esi, 2
lea edi, [eax - 0x55]
lea ecx, [esp + 0x16c]
call fcn.03ebfc90
lea ecx, [esp + 0xc4]
mov ax, word [eax]
shr ax, 1
sub ax, di
movzx eax, ax
push eax
push esi
call fcn.03ebfc50
mov ecx, eax
call fcn.03ebfc90
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.03ec0060
sub esp, 0x208
mov ecx, esp
push ebx
call fcn.03ebff70
mov ecx, dword [esp + 0x22c]
call fcn.03e3eff0
jmp 0x3e404a8
mov ecx, dword [esp + 0x13e4]
call fcn.03ec0410
mov ecx, dword [esp + 0x13e8]
lea eax, [esp + 0x16c]
push eax
call fcn.03ec0000
lea ecx, [esp + 0x16c]
call fcn.03ebffe0
lea ecx, [esp + 0x60]
call fcn.03ec0560
push dword [0x1010975c]
call dword [0x100df26c]
dec eax
push eax
push dword [0x1010975c]
call dword [0x100df268]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x13c8
ret 0x10