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

Disassembly:
push 0xffffffffffffffff
push 0x10200b98
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd0
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
push ebp
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a], 0
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], 0x10211c88
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
call fcn.100c6280
cmp byte [esi + 0x9c], 0
mov dword [esp + 0xe8], ebp
mov dword [esp + 0x30], ebp
mov byte [esp + 0x17], 0
mov byte [esp + 0x27], 0
jne 0x100fd285
cmp byte [esi + 0x9b], 1
jne 0x100fd285
mov byte [esp + 0x27], 1
mov byte [esi + 0x9b], 0
lea eax, [esi + 0x1a8]
push eax
lea eax, [esp + 0x2b]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.100fe620
mov ecx, dword [esi + 8]
mov ebx, dword [eax]
mov edx, dword [ecx]
mov dword [esp + 0x10], ebx
call dword [edx + 0xc]
test byte [eax + 0x18], 0x40
mov edi, dword [esp + 0xf4]
jne case.0x100fd30e.0
mov eax, dword [esi + 0x8c]
mov dword [eax + 8], edi
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
and eax, 0x7f
cmp eax, 0x25
je 0x100fd2de
cmp eax, 0x2b
jle 0x100fd2e8
cmp eax, 0x2f
jg 0x100fd2e8
mov edx, dword [edi]
and dh, 0xbf
or dh, 0x80
mov dword [edi], edx
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 4]
test al, 3
jne case.0x100fd30e.0
shr eax, 0x15
and eax, 0xf0
cmp eax, 0xa0
ja case.0x100fd30e.1
movzx edx, byte [eax + 0x100fe4cc]
jmp dword [edx*4 + 0x100fe4c0]
mov eax, dword [edi]
and ah, 0xbf
or ah, 0x80
mov dword [edi], eax
jmp case.0x100fd30e.0
and ebx, 0xfffffffe
or ebx, 2
mov dword [esp + 0x10], ebx
mov eax, dword [esi + 0x8c]
mov dword [eax + 8], edi
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
test al, 3
jne 0x100fd35a
and eax, 0x1e000000
cmp eax, 0x10000000
jne 0x100fd35a
mov eax, dword [edi]
and ah, 0xbf
or ah, 0x80
mov dword [edi], eax
mov eax, dword [esi + 0x8c]
mov dword [eax + 8], edi
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
and eax, 0x7f
cmp eax, 0x7e
ja case.0x100fd37d.3
movzx eax, byte [eax + 0x100fe580]
jmp dword [eax*4 + 0x100fe570]
xor ebp, ebp
jmp 0x100fd3a0
mov ebp, 1
jmp 0x100fd3a0
mov ebp, 2
jmp 0x100fd3a0
and ebx, 0xfffffffe
or ebx, 2
mov dword [esp + 0x10], ebx
mov dword [ecx + 8], edi
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
shr eax, 8
and eax, 1
jne 0x100fd3e0
test ebp, ebp
jne 0x100fd3c3
and dword [edi + 4], 0xffff801f
jmp 0x100fd40d
cmp ebp, 1
jne 0x100fd40d
mov eax, dword [edi + 4]
mov ecx, eax
and ah, 0x83
and ecx, 0x380
shl ecx, 5
or ecx, eax
mov dword [edi + 4], ecx
jmp 0x100fd40d
cmp eax, 1
jne 0x100fd40d
test ebp, ebp
jne 0x100fd3f2
and dword [edi + 4], 0xffff801f
jmp 0x100fd40d
cmp ebp, 1
jne 0x100fd40d
mov eax, dword [edi + 4]
mov edx, eax
and ah, 0x83
and edx, 0x380
shl edx, 5
or edx, eax
mov dword [edi + 4], edx
cmp byte [esi + 0x9a], 0
mov ebp, dword [esp + 0xf8]
jne 0x100fd464
cmp dword [esi + 0x1b4], 0
jne 0x100fd464
cmp byte [esi + 0x99], 0
je 0x100fd464
mov ecx, dword [esi + 0x80]
mov byte [esi + 0x99], 0
mov eax, dword [ecx + 0x1fc]
or eax, dword [ecx + 0x1f0]
push ebp
or eax, dword [ecx + 0x1e8]
mov ecx, esi
push eax
lea eax, [esp + 0x24]
push eax
call fcn.100fc8b0
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov ebx, ecx
mov eax, dword [esi + 0x8c]
mov dword [eax + 8], edi
mov edx, dword [esi + 0x8c]
mov eax, dword [edx + 8]
mov eax, dword [eax]
and eax, 0x7f
add eax, 0xffffffde
or edx, 0xffffffff
cmp eax, 7
ja case.default.0x100fd48a
jmp dword [eax*4 + 0x100fe600]
test bl, 1
je case.default.0x100fd48a
cmp byte [esi + 0x9a], 0
jne 0x100fd4e7
mov eax, dword [esi + 0xa8]
test eax, eax
jbe 0x100fd4e7
mov ecx, dword [esi + 0x80]
xor edx, edx
div dword [ecx + 0x200]
test edx, edx
jne 0x100fd4e7
mov eax, dword [ecx + 0x1fc]
or eax, dword [ecx + 0x1ec]
push ebp
or eax, dword [ecx + 0x1e4]
lea ecx, [esp + 0x20]
push eax
push ecx
mov ecx, esi
call fcn.100fc8b0
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov ebx, edx
test bl, 1
je case.default.0x100fd48a
mov ebp, 1
add dword [esi + 0xa8], ebp
add dword [esi + 0xb0], ebp
mov ecx, esi
call fcn.1014abe0
test al, al
je 0x100fd51b
mov eax, dword [esi + 0xa4]
mov dword [edi + 0xc], eax
add dword [esi + 0xa4], ebp
mov ecx, dword [esi + 0xa0]
push ecx
lea ecx, [esi + 0xb4]
call fcn.100b3290
test al, al
jne case.default.0x100fd48a
and ebx, 0xfffffffe
or ebx, 8
mov dword [esp + 0x10], ebx
jmp case.default.0x100fd48a
test bl, 1
je case.default.0x100fd48a
lea ecx, [esi + 0xb4]
call fcn.101b51d0
mov ecx, dword [esi + 0x1c]
mov ebx, eax
mov edx, ebx
push 0x10
shl edx, 4
push edx
call fcn.100ffaf0
mov ecx, esi
mov ebp, eax
call fcn.1014abe0
test al, al
je 0x100fd5a0
mov eax, dword [ebp + 0xc]
mov edi, eax
push eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0xe0]
and edi, 0xffff
push eax
mov ecx, esi
or edi, 0x10000
call fcn.1014aeb0
mov ecx, dword [eax]
jmp 0x100fd5f8
mov edi, dword [esi + 0xa0]
mov eax, dword [esi + 0x80]
mov ecx, dword [eax + 0x20c]
sub edi, ebx
add edi, dword [ebp + 0xc]
push ecx
and edi, 0xffff
or edi, 0x10000
mov edx, edi
imul edx, dword [eax + 0x258]
xor edx, edi
and edx, 0xffff
xor edi, edx
mov edx, dword [eax + 0x208]
movsx eax, di
push edx
push eax
call fcn.10080a20
add esp, 0xc
test al, al
jne 0x100fd5fc
mov ecx, dword [esp + 0x10]
and ecx, 0xfffffffe
or ecx, 2
mov dword [esp + 0x10], ecx
test byte [esp + 0x10], 1
je case.default.0x100fd48a
mov ecx, esi
mov dword [ebp + 0xc], edi
call fcn.1014abe0
test al, al
je 0x100fd62c
mov edx, dword [esi + 0xa4]
mov eax, dword [esp + 0xf4]
mov dword [eax + 0xc], edx
add dword [esi + 0xa4], 1
mov ecx, dword [esi + 0xa0]
push ecx
lea ecx, [esi + 0xb4]
call fcn.100b3290
test al, al
jne case.default.0x100fd48a
mov edx, dword [esp + 0x10]
and edx, 0xfffffffe
or edx, 8
mov dword [esp + 0x10], edx
jmp case.default.0x100fd48a
mov ecx, ebx
and ecx, 1
je 0x100fd69d
add dword [esi + 0xa8], edx
add dword [esi + 0xb0], edx
cmp byte [esi + 0x9a], 0
mov eax, dword [esi + 0xa8]
jne 0x100fd69d
test eax, eax
jbe 0x100fd69d
mov edi, dword [esi + 0x80]
xor edx, edx
div dword [edi + 0x200]
test edx, edx
jne 0x100fd69d
mov byte [esi + 0x98], 1
mov byte [esp + 0x26], 1
test ecx, ecx
je case.default.0x100fd48a
lea ecx, [esi + 0xb4]
call fcn.101b51d0
mov ecx, dword [esi + 0x1c]
mov ebp, eax
push 0x10
shl eax, 4
push eax
call fcn.100ffaf0
mov ebx, eax
mov eax, dword [esi + 0x8c]
mov dword [eax + 8], ebx
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
and eax, 0x7f
sub eax, 0x22
je 0x100fd7d8
sub eax, 1
je 0x100fd753
sub eax, 1
je 0x100fd70b
mov eax, dword [esp + 0x10]
and al, 0xfe
or al, 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xf4]
mov dword [eax + 0xc], 0x10000
jmp case.default.0x100fd48a
mov ecx, esi
call fcn.1014abe0
test al, al
je 0x100fd733
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x30], edi
and edi, 0xffff
or edi, 0x10000
mov byte [esp + 0x17], 1
jmp 0x100fd85d
mov ecx, dword [esi + 0xa0]
mov edx, dword [ebx + 0xc]
sub ecx, ebp
lea edi, [ecx + edx + 1]
and edi, 0xffff
or edi, 0x10000
jmp 0x100fd818
mov ecx, esi
call fcn.1014abe0
test al, al
je 0x100fd775
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x30], edi
and edi, 0xffff
mov byte [esp + 0x17], 1
jmp 0x100fd85d
mov eax, dword [esi + 0xa0]
mov ecx, dword [ebx + 0xc]
sub eax, ebp
lea edi, [eax + ecx + 1]
mov eax, dword [esi + 0x80]
mov ecx, dword [eax + 0x20c]
and edi, 0xffff
mov edx, edi
imul edx, dword [eax + 0x258]
xor edx, edi
and edx, 0xffff
xor edi, edx
mov edx, dword [eax + 0x208]
push ecx
movsx eax, di
push edx
push eax
call fcn.10080a20
add esp, 0xc
test al, al
jne 0x100fd85d
mov ecx, dword [esp + 0x10]
and ecx, 0xfffffffe
or ecx, 2
mov dword [esp + 0x10], ecx
jmp 0x100fd85d
mov ecx, esi
call fcn.1014abe0
test al, al
je 0x100fd807
mov eax, dword [ebx + 0xc]
push eax
lea edx, [esp + 0x3c]
mov edi, eax
push edx
mov ecx, esi
mov dword [esp + 0x38], eax
and edi, 0xffff
call fcn.1014aeb0
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jmp 0x100fd85d
mov edi, dword [esi + 0xa0]
sub edi, ebp
add edi, dword [ebx + 0xc]
and edi, 0xffff
mov eax, dword [esi + 0x80]
mov edx, dword [eax + 0x20c]
mov ecx, edi
imul ecx, dword [eax + 0x258]
mov eax, dword [eax + 0x208]
xor ecx, edi
and ecx, 0xffff
xor edi, ecx
push edx
movsx ecx, di
push eax
push ecx
call fcn.10080a20
add esp, 0xc
test al, al
jne 0x100fd85d
mov edx, dword [esp + 0x10]
and edx, 0xfffffffe
or edx, 2
mov dword [esp + 0x10], edx
test byte [esp + 0x10], 1
je 0x100fd867
mov dword [ebx + 0xc], edi
mov eax, dword [esp + 0xf4]
mov dword [eax + 0xc], 0x10000
jmp case.default.0x100fd48a
test bl, 1
je case.default.0x100fd48a
cmp byte [esi + 0x9a], 0
jne 0x100fd8d4
mov eax, dword [esi + 0xac]
test eax, eax
jbe 0x100fd8d4
mov ecx, dword [esi + 0x80]
mov edi, dword [ecx + 0x200]
shr edi, 1
xor edx, edx
div edi
test edx, edx
jne 0x100fd8d4
mov eax, dword [ecx + 0x1fc]
or eax, dword [ecx + 0x1f0]
push ebp
or eax, dword [ecx + 0x1e4]
lea ecx, [esp + 0x20]
push eax
push ecx
mov ecx, esi
call fcn.100fc8b0
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov ebx, edx
test bl, 1
je case.default.0x100fd48a
mov eax, dword [esi + 0xb0]
push eax
lea ecx, [esi + 0x124]
call fcn.100b3290
test al, al
je 0x100fd909
mov ecx, dword [esi + 0xa0]
push ecx
lea ecx, [esi + 0xec]
call fcn.100b3290
test al, al
jne 0x100fd913
and ebx, 0xfffffffe
or ebx, 8
mov dword [esp + 0x10], ebx
test bl, 1
je case.default.0x100fd48a
add dword [esi + 0xac], 1
mov dword [esi + 0xb0], 0
jmp case.default.0x100fd48a
test bl, 1
je case.default.0x100fd48a
mov edx, dword [esi + 0xb0]
push edx
lea ecx, [esi + 0x124]
call fcn.100b3290
test al, al
je 0x100fd535
mov eax, dword [esi + 0xa0]
push eax
lea ecx, [esi + 0xec]
jmp 0x100fd528
mov ecx, ebx
and ecx, 1
mov dword [esp + 0x2c], ecx
je 0x100fd9ad
cmp byte [esi + 0x9a], 0
jne 0x100fd9ad
mov eax, dword [esi + 0xac]
cmp eax, 1
jbe 0x100fd9ad
mov edx, dword [esi + 0x80]
mov edi, dword [edx + 0x200]
shr edi, 1
add eax, 0xffffffff
xor edx, edx
div edi
test edx, edx
jne 0x100fd9ad
mov byte [esi + 0x98], 1
mov byte [esi + 0x99], 1
test ecx, ecx
je case.default.0x100fd48a
lea edx, [esi + 0xf4]
lea ebx, [esi + 0x12c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], ebx
jmp 0x100fd9e0
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
jmp 0x100fd9e0
mov eax, dword [esi + 0x100]
lea ecx, [esi + 0xec]
xor ebp, ebp
cmp eax, edx
mov dword [esp + 0x34], ebp
je 0x100fda0b
mov ebp, dword [eax + 8]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x38], ebp
call fcn.100a4850
mov eax, dword [esi + 0x138]
lea ecx, [esi + 0x124]
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x18], edi
je 0x100fda36
mov edi, dword [eax + 8]
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], eax
call fcn.100a4850
mov ecx, dword [esi + 0x1c]
mov eax, ebp
shl eax, 4
push 0x10
push eax
xor ebx, ebx
mov dword [esp + 0x24], eax
call fcn.100ffaf0
mov ecx, dword [esi + 0x8c]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 0x8c]
mov eax, dword [ecx + 8]
mov eax, dword [eax]
and eax, 0x7f
cmp eax, 0x26
je 0x100fdcf0
cmp eax, 0x27
jle 0x100fdce0
cmp eax, 0x29
jg 0x100fdce0
cmp byte [esi + 0x9a], bl
jne 0x100fdb9f
mov eax, dword [esi + 0xa8]
test eax, eax
je 0x100fdb9f
cmp dword [esp + 0x18], ebx
je 0x100fdb9f
mov edx, dword [esi + 0x80]
mov ebp, dword [edx + 0x200]
xor edx, edx
div ebp
add edx, dword [esp + 0x18]
cmp edx, ebp
ja 0x100fdad6
mov eax, dword [esi + 0xa8]
mov ebp, dword [esi + 0x80]
xor edx, edx
div dword [ebp + 0x200]
test edx, edx
jne 0x100fdb9f
mov eax, dword [esi + 0x80]
mov edx, dword [esp + 0x18]
mov byte [esi + 0x98], 1
mov ebx, dword [eax + 0x200]
mov eax, dword [esi + 0xa8]
add eax, edx
xor edx, edx
div ebx
mov edi, edx
test edi, edi
jne 0x100fdb09
mov edi, dword [esp + 0x18]
cmp edi, ebx
jbe 0x100fdb09
mov edi, ebx
mov ebp, dword [esp + 0x18]
xor eax, eax
mov edx, eax
sub ebp, edi
xor edx, ebp
mov dword [esp + 0x5c], eax
and edx, 0xffff
xor eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 8]
mov eax, dword [eax]
and eax, 0x7f
cmp eax, 0x28
mov ebx, 0x80000000
mov dword [esp + 0x20], ebx
jne 0x100fdbe7
xor ebx, ebx
cmp dword [esi + 0x1b4], ebx
jbe 0x100fdb78
lea esp, [esp]
push ebx
lea ecx, [esi + 0x1a8]
call fcn.100ffa50
and edx, 0xffff
cmp edx, ebp
mov dword [esp + 0xd4], eax
je 0x100fdb9b
add ebx, 1
cmp ebx, dword [esi + 0x1b4]
jb 0x100fdb50
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
mov eax, dword [esi + 0x1b4]
push ecx
push edx
push eax
lea ecx, [esi + 0x1a8]
mov byte [esi + 0x9b], 1
call fcn.10062900
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x2c], 0
je 0x100fdd68
mov ecx, dword [esp + 0x1c]
push 0x10
push ecx
mov ecx, dword [esi + 0x1c]
call fcn.100ffaf0
mov ebp, eax
mov edx, dword [ebp + 0xc]
and edi, 0xf
shl edi, 0x10
and edx, 0xffff
or edi, edx
and ebx, 0xfff00000
mov ecx, esi
or edi, ebx
call fcn.1014abe0
test al, al
je 0x100fdc54
mov dword [ebp + 0xc], edi
jmp 0x100fdccd
cmp eax, 0x29
jne 0x100fdb9f
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x20], 0
jbe 0x100fdc30
jmp 0x100fdc00
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x44]
call fcn.100ffa50
and edx, 0xffff
cmp edx, ebp
mov dword [esp + 0xd4], eax
je 0x100fdb9f
mov eax, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
jb 0x100fdc00
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x4c]
push ecx
push edx
push eax
lea ecx, [esp + 0x4c]
mov byte [esi + 0x9c], 1
call fcn.10062900
jmp 0x100fdb9f
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx + 8]
add eax, edi
sub eax, dword [esp + 0x34]
xor eax, edi
and eax, 0xffff
xor edi, eax
mov eax, dword [edx]
and eax, 0x7f
cmp al, 0x28
jne 0x100fdc88
lea ecx, [edi + 1]
xor ecx, edi
and ecx, 0xffff
xor edi, ecx
mov eax, dword [esi + 0x80]
mov ecx, dword [eax + 0x20c]
mov edx, edi
imul edx, dword [eax + 0x258]
xor edx, edi
and edx, 0xffff
xor edi, edx
mov edx, dword [eax + 0x208]
push ecx
movsx eax, di
push edx
push eax
call fcn.10080a20
add esp, 0xc
test al, al
jne 0x100fdccd
mov ecx, dword [esp + 0x10]
and ecx, 0xfffffffe
or ecx, 2
mov dword [esp + 0x10], ecx
test byte [esp + 0x10], 1
je 0x100fdd68
mov dword [ebp + 0xc], edi
jmp 0x100fdd68
mov edx, dword [esp + 0x10]
and edx, 0xfffffffe
or edx, 2
mov dword [esp + 0x10], edx
jmp 0x100fdd68
mov ebx, dword [esp + 0xf4]
mov edi, dword [ebx + 0xc]
mov ecx, esi
and edi, 0xffff
call fcn.1014abe0
test al, al
je 0x100fdd10
mov dword [ebx + 0xc], edi
jmp 0x100fdd5e
mov eax, edi
sub eax, dword [esi + 0xa0]
lea ecx, [eax + ebp + 1]
mov eax, dword [esi + 0x80]
xor ecx, edi
and ecx, 0xffff
xor edi, ecx
mov edx, edi
imul edx, dword [eax + 0x258]
xor edx, edi
and edx, 0xffff
xor edi, edx
movsx ecx, di
cmp ecx, dword [eax + 0x208]
jl 0x100fdd52
cmp ecx, dword [eax + 0x20c]
jle 0x100fdd5e
mov eax, dword [esp + 0x10]
and al, 0xfe
or al, 2
mov dword [esp + 0x10], eax
test byte [esp + 0x10], 1
je 0x100fdd68
mov dword [ebx + 0xc], edi
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
and eax, 0x7f
cmp al, 0x26
je 0x100fdd8d
mov eax, dword [esp + 0x10]
and eax, 1
mov dword [esp + 0x2c], eax
jne 0x100fd9cb
jmp case.default.0x100fd48a
mov ecx, dword [esp + 0x18]
add dword [esi + 0xac], 0xffffffff
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0x8c]
mov edx, dword [esp + 0xf4]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x8c]
mov eax, dword [eax + 8]
mov ecx, dword [eax]
mov eax, ecx
shr eax, 0x12
and eax, 0x400
and ecx, 0x200
or eax, ecx
shr eax, 9
cmp eax, 2
jne 0x100fe39c
xor ecx, ecx
lea eax, [esp + 0xa4]
mov edx, 0x10206138
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xbc]
mov edi, 0x1020dfec
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x9c], edi
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x84], edx
lea edx, [esp + 0x84]
mov ebx, eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x64], edi
mov ecx, dword [esp + 0x10]
and ecx, 1
mov byte [esp + 0xe8], 2
mov dword [esp + 0x2c], ecx
je 0x100fe1ca
lea eax, [esi + 0xf4]
lea ecx, [esi + 0x12c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], ecx
lea ebx, [ebx]
mov eax, dword [esi + 0x100]
mov edx, dword [esp + 0x1c]
cmp eax, edx
lea ecx, [esi + 0xec]
mov dword [esp + 0x18], 0
je 0x100fdf11
mov edi, dword [eax + 8]
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x2c], eax
call fcn.100a4850
mov eax, dword [esi + 0x138]
mov edx, dword [esp + 0x3c]
lea ecx, [esi + 0x124]
xor ebp, ebp
cmp eax, edx
je 0x100fdf38
mov ebp, dword [eax + 8]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
call fcn.100a4850
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x1c]
shl eax, 4
push 0x10
push eax
mov edi, ebp
xor ebx, ebx
mov dword [esp + 0x28], eax
call fcn.100ffaf0
mov ecx, dword [esi + 0x8c]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 0x8c]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
and eax, 0x7f
cmp al, 0x29
jne 0x100fe11d
cmp byte [esi + 0x9a], bl
jne 0x100fe06d
mov eax, dword [esi + 0xa8]
test eax, eax
je 0x100fe06d
test ebp, ebp
je 0x100fe06d
mov ecx, dword [esi + 0x80]
mov ecx, dword [ecx + 0x200]
xor edx, edx
div ecx
add edx, ebp
cmp edx, ecx
ja 0x100fdfc5
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0x80]
xor edx, edx
div dword [ecx + 0x200]
test edx, edx
jne 0x100fe06d
mov eax, dword [esi + 0x80]
mov byte [esi + 0x98], 1
mov ecx, dword [eax + 0x200]
mov eax, dword [esi + 0xa8]
add eax, ebp
xor edx, edx
div ecx
xor eax, eax
mov edi, edx
cmp edi, eax
jne 0x100fdff4
cmp ebp, ecx
mov edi, ebp
jbe 0x100fdff4
mov edi, ecx
xor edx, edx
sub ebp, edi
mov ecx, edx
xor ecx, ebp
and ecx, 0xffff
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x4c]
xor edx, ecx
cmp ebp, eax
mov dword [esp + 0xd4], eax
mov ebx, 0x80000000
jbe 0x100fe056
lea esp, [esp]
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x100fe03d
cmp eax, ebp
jae 0x100fe03d
mov ecx, dword [ecx + eax*8]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + eax*8 + 4]
jmp 0x100fe043
xor ecx, ecx
mov dword [esp + 0x5c], ecx
and ecx, 0xffff
cmp ecx, dword [esp + 0x28]
je 0x100fe06d
add eax, 1
cmp eax, ebp
jb 0x100fe020
push edx
mov edx, dword [esp + 0x1c]
push edx
push ebp
lea ecx, [esp + 0x4c]
mov byte [esi + 0x9c], 1
call fcn.10062900
cmp dword [esp + 0x2c], 0
je 0x100fe1a2
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x1c]
push 0x10
push eax
call fcn.100ffaf0
and edi, 0xf
mov ebp, eax
mov ecx, dword [ebp + 0xc]
shl edi, 0x10
and ebx, 0xfff00000
and ecx, 0xffff
or edi, ebx
or edi, ecx
mov ecx, esi
call fcn.1014abe0
test al, al
je 0x100fe0b5
mov dword [ebp + 0xc], edi
jmp 0x100fe1a2
mov edx, dword [esi + 0xa0]
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax + 8]
add edx, edi
sub edx, dword [esp + 0x18]
xor edx, edi
and edx, 0xffff
xor edi, edx
mov edx, dword [ecx]
and edx, 0x7f
cmp dl, 0x28
jne 0x100fe0ea
lea eax, [edi + 1]
xor eax, edi
and eax, 0xffff
xor edi, eax
mov dword [ebp + 0xc], edi
mov ecx, dword [esi + 0x80]
movsx eax, di
cmp eax, dword [ecx + 0x208]
jl 0x100fe10a
cmp eax, dword [ecx + 0x20c]
jle 0x100fe1a2
mov ecx, dword [esp + 0x10]
and ecx, 0xfffffffe
or ecx, 2
mov dword [esp + 0x10], ecx
jmp 0x100fe1a2
mov edi, dword [esp + 0x78]
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], ebp
call fcn.10059710
test eax, eax
je 0x100fe194
mov edx, dword [esp + 0x18]
mov dword [eax + 0xc], edi
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x10], ecx
mov dword [ecx + 0xc], eax
mov ecx, dword [eax + 0xc]
mov dword [ecx + 0x10], eax
mov edi, dword [esp + 0xb0]
lea eax, [esp + 0x28]
mov ebx, 1
add dword [esp + 0x80], ebx
push eax
lea ecx, [esp + 0xa0]
mov dword [esp + 0x2c], edx
call fcn.10059710
test eax, eax
je 0x100fe194
mov dword [eax + 0xc], edi
mov edi, dword [edi + 0x10]
mov dword [eax + 0x10], edi
mov dword [edi + 0xc], eax
mov ecx, dword [eax + 0xc]
mov dword [ecx + 0x10], eax
add dword [esp + 0xb8], ebx
jmp 0x100fe1a2
mov edx, dword [esp + 0x10]
and edx, 0xfffffffe
or edx, 8
mov dword [esp + 0x10], edx
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
and edx, 0x7f
cmp dl, 0x26
je 0x100fe1c6
mov eax, dword [esp + 0x10]
and eax, 1
mov dword [esp + 0x2c], eax
jne 0x100fdee0
mov eax, dword [esp + 0x78]
test byte [esp + 0x10], 1
je 0x100fe377
jmp 0x100fe1e0
mov eax, dword [esp + 0x78]
jmp 0x100fe1e0
lea ecx, [esp + 0x6c]
cmp eax, ecx
je 0x100fe2ee
mov ebp, dword [eax + 8]
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x68]
mov dword [esp + 0x20], eax
call fcn.100a4850
mov eax, dword [esi + 0x150]
mov ebx, dword [esi + 0x138]
lea ecx, [esi + 0x144]
cmp eax, ecx
je 0x100fe242
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov dword [eax + 0x10], eax
mov dword [eax + 0xc], eax
mov dword [eax + 8], 0
add dword [esi + 0x158], 0xffffffff
mov dword [eax + 8], ebp
jmp 0x100fe2b8
call fcn.10054450
test eax, eax
je 0x100fe258
push 0x81
call fcn.10054f00
add esp, 4
call fcn.10054450
test eax, eax
je 0x100fe26d
push 1
push 0x2a
call fcn.10054f50
add esp, 8
push 0x15e
push str.d:ccviews_autobuild1_br_0810_2282_15.11_snapshotgfx_development_sourceghal3dibdw_allocator.h
push 0x14
call fcn.1000ba90
add esp, 0xc
mov edi, eax
call fcn.10054450
test eax, eax
je 0x100fe298
push 0
push 0x2a
call fcn.10054f50
add esp, 8
test edi, edi
je 0x100fe2b4
mov dword [edi + 4], 0
mov dword [edi], 0x10206138
mov dword [edi + 8], ebp
mov dword [edi + 0xc], edi
mov dword [edi + 0x10], edi
jmp 0x100fe2b6
xor edi, edi
mov eax, edi
test eax, eax
je 0x100fe2d7
mov dword [eax + 0xc], ebx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov dword [ecx + 0xc], eax
mov edx, dword [eax + 0xc]
mov dword [edx + 0x10], eax
add dword [esi + 0x140], 1
jmp 0x100fe2e3
mov eax, dword [esp + 0x10]
and al, 0xfe
or al, 8
mov dword [esp + 0x10], eax
test byte [esp + 0x10], 1
jne 0x100fe1d7
test byte [esp + 0x10], 1
je 0x100fe377
lea esp, [esp]
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0xa4]
cmp eax, ecx
je 0x100fe377
mov edi, dword [eax + 8]
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0xa0]
mov dword [esp + 0x20], eax
call fcn.100a4850
mov ebx, dword [esi + 0x100]
mov dword [esp + 0x1c], edi
lea edi, [esi + 0xec]
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.10059710
test eax, eax
je 0x100fe362
mov dword [eax + 0xc], ebx
mov ebx, dword [ebx + 0x10]
mov dword [eax + 0x10], ebx
mov dword [ebx + 0xc], eax
mov ecx, dword [eax + 0xc]
mov dword [ecx + 0x10], eax
add dword [edi + 0x1c], 1
jmp 0x100fe370
mov edx, dword [esp + 0x10]
and edx, 0xfffffffe
or edx, 8
mov dword [esp + 0x10], edx
test byte [esp + 0x10], 1
jne 0x100fe300
lea ecx, [esp + 0x64]
mov byte [esp + 0xe8], 1
call fcn.10059c90
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe8], 0
call fcn.10059c90
test byte [esp + 0x10], 1
je 0x100fe45f
lea eax, [esp + 0x40]
push eax
lea eax, [esi + 0x9c]
push eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.100fe620
mov edx, dword [eax]
mov dword [esp + 0x10], edx
test byte [esp + 0x10], 1
je 0x100fe45f
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
push eax
push ecx
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.1014acc0
mov eax, dword [eax]
mov dword [esp + 0x10], eax
test byte [esp + 0x10], 1
je 0x100fe45f
add dword [esi + 0xa0], 1
cmp byte [esp + 0x17], 0
je 0x100fe41e
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
call fcn.1014aeb0
mov eax, dword [eax]
mov dword [esp + 0x10], eax
test byte [esp + 0x10], 1
je 0x100fe45f
cmp byte [esp + 0x26], 0
je 0x100fe45f
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx + 0x1fc]
or eax, dword [ecx + 0x1ec]
lea edx, [esp + 0x38]
or eax, dword [ecx + 0x1e8]
mov ecx, dword [esp + 0xf8]
push ecx
push eax
push edx
mov ecx, esi
call fcn.100fc8b0
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x10]
xor edi, edi
cmp eax, edi
mov dword [esi], ecx
mov dword [esp + 0xe8], 0xffffffff
mov dword [esp + 0x40], 0x10211c88
je 0x100fe493
push eax
call fcn.100553e0
mov dword [esp + 0x48], edi
lea ecx, [esp + 0x40]
mov dword [esp + 0x50], edi
call fcn.100c2710
mov ecx, dword [esp + 0xe0]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xdc
ret 0xc