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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x1005ff7c
mov eax, dword fs:[0]
push eax
sub esp, 0x1e8
push ebx
push esi
push edi
mov eax, dword [0x100a33c8]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
fld qword [0x100657a8]
fld qword [0x10063e18]
call fcn.10045550
fadd qword [0x10064f40]
call fcn.10045450
fdivr qword [ebp + 8]
sub esp, 8
fstp qword [esp]
call fcn.1000bfd0
push 4
mov ebx, eax
call fcn.10011ba1
xor edi, edi
add esp, 0xc
cmp eax, edi
je 0x1000d4f6
lea ecx, [esp + 0x58]
mov dword [eax], ecx
jmp 0x1000d4f8
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
push 4
mov dword [esp + 0x204], edi
call fcn.10011ba1
add esp, 4
cmp eax, edi
je 0x1000d529
lea edx, [esp + 0x38]
mov dword [eax], edx
jmp 0x1000d52b
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov ecx, ebx
mov byte [esp + 0x200], 1
call fcn.10007690
test eax, eax
jle 0x1000d5f3
push edi
mov ecx, ebx
call fcn.100076b0
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x74]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x6c]
cmp eax, ecx
ja 0x1000d580
push 1
lea ecx, [esp + 0x5c]
call fcn.1000d160
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
lea esi, [ecx + edx]
cmp eax, esi
ja 0x1000d591
sub esi, eax
mov edx, dword [esp + 0x68]
cmp dword [edx + esi*4], 0
jne 0x1000d5ac
push 0x18
call fcn.10011ba1
mov ecx, dword [esp + 0x6c]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + esi*4]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], ecx
mov byte [esp + 0x200], 2
test ecx, ecx
je 0x1000d5d7
mov eax, dword [esp + 0x78]
push eax
call fcn.10007310
inc dword [esp + 0x74]
mov ecx, ebx
mov byte [esp + 0x200], 1
inc edi
call fcn.10007690
cmp edi, eax
jl 0x1000d556
mov ecx, ebx
xor edi, edi
call fcn.100076a0
test eax, eax
jle 0x1000d69f
push edi
mov ecx, ebx
call fcn.100076c0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x4c]
inc ecx
cmp eax, ecx
ja 0x1000d62c
push 1
lea ecx, [esp + 0x3c]
call fcn.1000d2c0
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
lea esi, [ecx + edx]
cmp eax, esi
ja 0x1000d63d
sub esi, eax
mov edx, dword [esp + 0x48]
cmp dword [edx + esi*4], 0
jne 0x1000d658
push 0xc
call fcn.10011ba1
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x48]
mov ecx, dword [edx + esi*4]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], ecx
mov byte [esp + 0x200], 3
test ecx, ecx
je 0x1000d683
mov eax, dword [esp + 0x78]
push eax
call fcn.10007620
inc dword [esp + 0x54]
mov ecx, ebx
mov byte [esp + 0x200], 1
inc edi
call fcn.100076a0
cmp edi, eax
jl 0x1000d604
test ebx, ebx
je 0x1000d6b3
mov ecx, ebx
call fcn.100076d0
push ebx
call fcn.10011bdb
add esp, 4
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x78], 0
jle 0x1000e2d2
jmp 0x1000d6d0
lea esi, [esp + 0xbc]
mov edi, 5
lea esp, [esp]
mov ecx, esi
call fcn.100071d0
add esi, 0x18
sub edi, 1
jns 0x1000d6e0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], 0
test ecx, ecx
jle 0x1000e2c0
mov eax, dword [esp + 0x50]
add ecx, eax
mov edi, eax
cmp eax, ecx
jbe 0x1000d71e
call fcn.10045f0b
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x1000d741
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp edi, ecx
ja 0x1000d74e
test esi, esi
je 0x1000d747
mov eax, dword [esi]
jmp 0x1000d749
mov eax, dword [esi]
mov ecx, eax
jmp 0x1000d72f
xor eax, eax
cmp edi, dword [eax + 0x18]
jae 0x1000d753
call fcn.10045f0b
test esi, esi
jne 0x1000d777
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp edi, edx
jb 0x1000d76f
call fcn.10045f0b
test esi, esi
je 0x1000d77d
mov eax, dword [esi]
jmp 0x1000d77f
mov eax, dword [esi]
mov ecx, eax
jmp 0x1000d760
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x1000d791
test esi, esi
je 0x1000d78c
mov eax, dword [esi]
jmp 0x1000d78e
xor eax, eax
sub edi, dword [eax + 0x14]
test esi, esi
je 0x1000d799
mov eax, dword [esi]
jmp 0x1000d79b
xor eax, eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edi*4]
mov ebx, dword [eax]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
add ecx, eax
mov esi, eax
cmp eax, ecx
jbe 0x1000d7b8
call fcn.10045f0b
mov eax, dword [esp + 0x58]
mov edi, eax
mov edx, edi
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], esi
test eax, eax
jne 0x1000d7f1
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov edx, edi
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x1000d7fe
test edi, edi
je 0x1000d7f7
mov edi, dword [edi]
jmp 0x1000d7f9
mov eax, dword [eax]
mov ecx, eax
jmp 0x1000d7dd
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x1000d80a
call fcn.10045f0b
mov edx, dword [esp + 0x9c]
test edx, edx
jne 0x1000d83c
call fcn.10045f0b
mov edx, dword [esp + 0x9c]
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
jb 0x1000d834
call fcn.10045f0b
mov edx, dword [esp + 0x9c]
test edx, edx
je 0x1000d842
mov eax, dword [edx]
jmp 0x1000d844
mov eax, dword [edx]
mov ecx, eax
jmp 0x1000d81e
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x1000d856
test edx, edx
je 0x1000d851
mov eax, dword [edx]
jmp 0x1000d853
xor eax, eax
sub esi, dword [eax + 0x14]
test edx, edx
je 0x1000d85e
mov eax, dword [edx]
jmp 0x1000d860
xor eax, eax
mov edx, dword [eax + 0x10]
mov eax, dword [edx + esi*4]
push eax
lea ecx, [esp + 0xc0]
call fcn.10007310
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add ecx, eax
mov esi, eax
cmp eax, ecx
jbe 0x1000d888
call fcn.10045f0b
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x1000d8ab
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
ja 0x1000d8b8
test edi, edi
je 0x1000d8b1
mov eax, dword [edi]
jmp 0x1000d8b3
mov eax, dword [edi]
mov ecx, eax
jmp 0x1000d899
xor eax, eax
cmp esi, dword [eax + 0x18]
jae 0x1000d8bd
call fcn.10045f0b
test edi, edi
jne 0x1000d8e1
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
jb 0x1000d8d9
call fcn.10045f0b
test edi, edi
je 0x1000d8e7
mov eax, dword [edi]
jmp 0x1000d8e9
mov eax, dword [edi]
mov ecx, eax
jmp 0x1000d8ca
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x1000d8fb
test edi, edi
je 0x1000d8f6
mov eax, dword [edi]
jmp 0x1000d8f8
xor eax, eax
sub esi, dword [eax + 0x14]
test edi, edi
je 0x1000d903
mov eax, dword [edi]
jmp 0x1000d905
xor eax, eax
mov edx, dword [eax + 0x10]
mov eax, dword [edx + esi*4]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
add ecx, eax
mov esi, eax
cmp eax, ecx
jbe 0x1000d923
call fcn.10045f0b
mov eax, dword [esp + 0x58]
mov edi, eax
mov edx, edi
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
test eax, eax
jne 0x1000d95c
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov edx, edi
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x1000d969
test edi, edi
je 0x1000d962
mov edi, dword [edi]
jmp 0x1000d964
mov eax, dword [eax]
mov ecx, eax
jmp 0x1000d948
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x1000d975
call fcn.10045f0b
mov edx, dword [esp + 0x94]
test edx, edx
jne 0x1000d9a7
call fcn.10045f0b
mov edx, dword [esp + 0x94]
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
jb 0x1000d99f
call fcn.10045f0b
mov edx, dword [esp + 0x94]
test edx, edx
je 0x1000d9ad
mov eax, dword [edx]
jmp 0x1000d9af
mov eax, dword [edx]
mov ecx, eax
jmp 0x1000d989
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x1000d9c1
test edx, edx
je 0x1000d9bc
mov eax, dword [edx]
jmp 0x1000d9be
xor eax, eax
sub esi, dword [eax + 0x14]
test edx, edx
je 0x1000d9c9
mov eax, dword [edx]
jmp 0x1000d9cb
xor eax, eax
mov edx, dword [eax + 0x10]
mov eax, dword [edx + esi*4]
push eax
lea ecx, [esp + 0xd8]
call fcn.10007310
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add ecx, eax
mov esi, eax
cmp eax, ecx
jbe 0x1000d9f3
call fcn.10045f0b
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x1000da16
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
ja 0x1000da23
test edi, edi
je 0x1000da1c
mov eax, dword [edi]
jmp 0x1000da1e
mov eax, dword [edi]
mov ecx, eax
jmp 0x1000da04
xor eax, eax
cmp esi, dword [eax + 0x18]
jae 0x1000da28
call fcn.10045f0b
test edi, edi
jne 0x1000da4c
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
jb 0x1000da44
call fcn.10045f0b
test edi, edi
je 0x1000da52
mov eax, dword [edi]
jmp 0x1000da54
mov eax, dword [edi]
mov ecx, eax
jmp 0x1000da35
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x1000da66
test edi, edi
je 0x1000da61
mov eax, dword [edi]
jmp 0x1000da63
xor eax, eax
sub esi, dword [eax + 0x14]
test edi, edi
je 0x1000da6e
mov eax, dword [edi]
jmp 0x1000da70
xor eax, eax
mov edx, dword [eax + 0x10]
mov eax, dword [edx + esi*4]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
add ecx, eax
mov esi, eax
cmp eax, ecx
jbe 0x1000da8e
call fcn.10045f0b
mov eax, dword [esp + 0x58]
mov edi, eax
mov edx, edi
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], esi
test eax, eax
jne 0x1000dac7
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov edx, edi
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x1000dad4
test edi, edi
je 0x1000dacd
mov edi, dword [edi]
jmp 0x1000dacf
mov eax, dword [eax]
mov ecx, eax
jmp 0x1000dab3
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x1000dae0
call fcn.10045f0b
mov edx, dword [esp + 0x8c]
test edx, edx
jne 0x1000db12
call fcn.10045f0b
mov edx, dword [esp + 0x8c]
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
jb 0x1000db0a
call fcn.10045f0b
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x1000db18
mov eax, dword [edx]
jmp 0x1000db1a
mov eax, dword [edx]
mov ecx, eax
jmp 0x1000daf4
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x1000db2c
test edx, edx
je 0x1000db27
mov eax, dword [edx]
jmp 0x1000db29
xor eax, eax
sub esi, dword [eax + 0x14]
test edx, edx
je 0x1000db34
mov eax, dword [edx]
jmp 0x1000db36
xor eax, eax
mov edx, dword [eax + 0x10]
mov eax, dword [edx + esi*4]
push eax
lea ecx, [esp + 0xf0]
call fcn.10007310
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add ecx, edi
cmp edi, ecx
jbe 0x1000db5c
call fcn.10045f0b
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x1000db7f
call fcn.10045f0b
xor ecx, ecx
xor eax, eax
mov edx, dword [eax + 0x1c]
add edx, dword [ecx + 0x18]
cmp edi, edx
ja 0x1000db8c
test esi, esi
je 0x1000db85
mov eax, dword [esi]
jmp 0x1000db87
mov ecx, dword [esi]
mov eax, ecx
jmp 0x1000db6d
xor eax, eax
cmp edi, dword [eax + 0x18]
jae 0x1000db91
call fcn.10045f0b
test esi, esi
jne 0x1000dbb5
call fcn.10045f0b
xor ecx, ecx
xor eax, eax
mov eax, dword [eax + 0x1c]
add eax, dword [ecx + 0x18]
cmp edi, eax
jb 0x1000dbad
call fcn.10045f0b
test esi, esi
je 0x1000dbbb
mov eax, dword [esi]
jmp 0x1000dbbd
mov ecx, dword [esi]
mov eax, ecx
jmp 0x1000db9e
xor eax, eax
cmp dword [eax + 0x14], edi
ja 0x1000dbcf
test esi, esi
je 0x1000dbca
mov eax, dword [esi]
jmp 0x1000dbcc
xor eax, eax
sub edi, dword [eax + 0x14]
test esi, esi
je 0x1000dbd7
mov eax, dword [esi]
jmp 0x1000dbd9
xor eax, eax
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + edi*4]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx]
add ecx, esi
mov dword [esp + 0xa4], eax
cmp esi, ecx
jbe 0x1000dbfb
call fcn.10045f0b
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x1000dc1e
call fcn.10045f0b
xor ecx, ecx
xor eax, eax
mov edx, dword [eax + 0x1c]
add edx, dword [ecx + 0x18]
cmp esi, edx
ja 0x1000dc2b
test edi, edi
je 0x1000dc24
mov eax, dword [edi]
jmp 0x1000dc26
mov ecx, dword [edi]
mov eax, ecx
jmp 0x1000dc0c
xor eax, eax
cmp esi, dword [eax + 0x18]
jae 0x1000dc30
call fcn.10045f0b
test edi, edi
jne 0x1000dc54
call fcn.10045f0b
xor ecx, ecx
xor eax, eax
mov eax, dword [eax + 0x1c]
add eax, dword [ecx + 0x18]
cmp esi, eax
jb 0x1000dc4c
call fcn.10045f0b
test edi, edi
je 0x1000dc5a
mov eax, dword [edi]
jmp 0x1000dc5c
mov ecx, dword [edi]
mov eax, ecx
jmp 0x1000dc3d
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x1000dc6e
test edi, edi
je 0x1000dc69
mov eax, dword [edi]
jmp 0x1000dc6b
xor eax, eax
sub esi, dword [eax + 0x14]
test edi, edi
je 0x1000dc76
mov eax, dword [edi]
jmp 0x1000dc78
xor eax, eax
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + esi*4]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + 4]
add ecx, esi
mov dword [esp + 0xa8], eax
cmp esi, ecx
jbe 0x1000dc9b
call fcn.10045f0b
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x1000dcbe
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
cmp esi, edx
ja 0x1000dccb
test edi, edi
je 0x1000dcc4
mov eax, dword [edi]
jmp 0x1000dcc6
mov eax, dword [edi]
mov ecx, eax
jmp 0x1000dcac
xor eax, eax
cmp esi, dword [eax + 0x18]
jae 0x1000dcd0
call fcn.10045f0b
test edi, edi
jne 0x1000dcf4
call fcn.10045f0b
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
cmp esi, ecx
jb 0x1000dcec
call fcn.10045f0b
test edi, edi
je 0x1000dcfa
mov eax, dword [edi]
jmp 0x1000dcfc
mov eax, dword [edi]
mov ecx, eax
jmp 0x1000dcdd
xor eax, eax
cmp dword [eax + 0x14], esi
ja 0x1000dd0e
test edi, edi
je 0x1000dd09
mov eax, dword [edi]
jmp 0x1000dd0b
xor eax, eax
sub esi, dword [eax + 0x14]
test edi, edi
je 0x1000dd16
mov eax, dword [edi]
jmp 0x1000dd18
xor eax, eax
mov edx, dword [eax + 0x10]
fld qword [esp + 0xd4]
fld st(0)
mov eax, dword [edx + esi*4]
mov ecx, dword [eax + 8]
fld qword [esp + 0xbc]
fadd st(1), st(0)
lea edx, [esp + 0x104]
fld qword [0x10063dd8]
mov dword [esp + 0xac], ecx
push edx
fmul st(2), st(0)
lea ecx, [esp + 0x168]
fxch st(2)
fstp qword [esp + 0x108]
fld qword [esp + 0xe0]
fld st(0)
fld qword [esp + 0xc8]
fadd st(1), st(0)
fxch st(1)
fmul st(4)
fstp qword [esp + 0x110]
fld qword [esp + 0xe8]
fld st(0)
fld qword [esp + 0xd0]
fadd st(1), st(0)
fxch st(1)
fmul st(6)
fstp qword [esp + 0x118]
fld qword [esp + 0xf0]
faddp st(7)
fxch st(6)
fmul st(5)
fstp qword [esp + 0x120]
fld qword [esp + 0xf8]
fld st(0)
faddp st(4)
fxch st(3)
fmul st(5)
fstp qword [esp + 0x128]
fld qword [esp + 0x100]
fld st(0)
faddp st(2)
fxch st(1)
fmul st(5)
fstp qword [esp + 0x130]
fld qword [esp + 0xf0]
faddp st(4)
fxch st(3)
fmul st(4)
fstp qword [esp + 0x138]
faddp st(1)
fmul st(2)
fstp qword [esp + 0x140]
faddp st(2)
fmulp st(1)
fstp qword [esp + 0x148]
call fcn.100072c0
lea ecx, [esp + 0x164]
call fcn.10007350
fld qword [esp + 0x164]
fld qword [ebp + 8]
lea eax, [esp + 0x11c]
fmul st(1), st(0)
push eax
fxch st(1)
lea ecx, [esp + 0x150]
fstp qword [esp + 0x108]
fld qword [esp + 0x170]
fmul st(1)
fstp qword [esp + 0x110]
fmul qword [esp + 0x178]
fstp qword [esp + 0x118]
call fcn.100072c0
lea ecx, [esp + 0x14c]
call fcn.10007350
fld qword [esp + 0x14c]
fld qword [ebp + 8]
fmul st(1), st(0)
fxch st(1)
fstp qword [esp + 0x11c]
fld qword [esp + 0x154]
lea ecx, [esp + 0x134]
fmul st(1)
push ecx
lea ecx, [esp + 0x180]
fstp qword [esp + 0x128]
fmul qword [esp + 0x160]
fstp qword [esp + 0x130]
call fcn.100072c0
lea ecx, [esp + 0x17c]
call fcn.10007350
fld qword [esp + 0x17c]
fld qword [ebp + 8]
mov eax, dword [esp + 0x74]
fmul st(1), st(0)
lea edx, [eax + 1]
fxch st(1)
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x6c]
fstp qword [esp + 0x134]
fld qword [esp + 0x184]
fmul st(1)
fstp qword [esp + 0x13c]
fmul qword [esp + 0x18c]
fstp qword [esp + 0x144]
cmp eax, edx
ja 0x1000df0d
push 1
lea ecx, [esp + 0x5c]
call fcn.1000d160
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
lea esi, [ecx + edx]
cmp eax, esi
ja 0x1000df1e
sub esi, eax
mov ecx, dword [esp + 0x68]
cmp dword [ecx + esi*4], 0
jne 0x1000df3d
push 0x18
call fcn.10011ba1
mov edx, dword [esp + 0x6c]
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0x70]
add esp, 4
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], ecx
mov byte [esp + 0x200], 4
test ecx, ecx
je 0x1000df6c
lea edx, [esp + 0x104]
push edx
call fcn.10007310
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
inc ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0xb4], ecx
inc ecx
mov byte [esp + 0x200], 1
cmp eax, ecx
ja 0x1000df98
push 1
lea ecx, [esp + 0x5c]
call fcn.1000d160
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
lea esi, [ecx + edx]
cmp eax, esi
ja 0x1000dfa9
sub esi, eax
mov ecx, dword [esp + 0x68]
cmp dword [ecx + esi*4], 0
jne 0x1000dfc8
push 0x18
call fcn.10011ba1
mov edx, dword [esp + 0x6c]
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0x70]
add esp, 4
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov byte [esp + 0x200], 5
test ecx, ecx
je 0x1000dff7
lea edx, [esp + 0x11c]
push edx
call fcn.10007310
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x74]
inc ebx
lea ecx, [ebx + 1]
mov byte [esp + 0x200], 1
mov dword [esp + 0x74], ebx
cmp eax, ecx
ja 0x1000e01e
push 1
lea ecx, [esp + 0x5c]
call fcn.1000d160
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
lea esi, [edx + ecx]
cmp eax, esi
ja 0x1000e02f
sub esi, eax
mov edx, dword [esp + 0x68]
cmp dword [edx + esi*4], 0
jne 0x1000e04a
push 0x18
call fcn.10011ba1
mov ecx, dword [esp + 0x6c]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + esi*4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov byte [esp + 0x200], 6
test ecx, ecx
je 0x1000e075
lea eax, [esp + 0x134]
push eax
call fcn.10007310
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xa4]
inc dword [esp + 0x74]
push ebx
push ecx
push edx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x20c], 1
call fcn.10007600
mov edi, eax
mov eax, dword [esp + 0x54]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x4c]
cmp eax, ecx
ja 0x1000e0be
push 1
lea ecx, [esp + 0x3c]
call fcn.1000d2c0
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
lea esi, [ecx + edx]
cmp eax, esi
ja 0x1000e0cf
sub esi, eax
mov edx, dword [esp + 0x48]
cmp dword [edx + esi*4], 0
jne 0x1000e0ea
push 0xc
call fcn.10011ba1
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x48]
mov ecx, dword [edx + esi*4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov byte [esp + 0x200], 7
test ecx, ecx
je 0x1000e10e
push edi
call fcn.10007620
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xb0]
inc dword [esp + 0x54]
push eax
push ecx
push edx
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x20c], 1
call fcn.10007600
mov edi, eax
mov eax, dword [esp + 0x54]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x4c]
cmp eax, ecx
ja 0x1000e15e
push 1
lea ecx, [esp + 0x3c]
call fcn.1000d2c0
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
lea esi, [ecx + edx]
cmp eax, esi
ja 0x1000e16f
sub esi, eax
mov edx, dword [esp + 0x48]
cmp dword [edx + esi*4], 0
jne 0x1000e18a
push 0xc
call fcn.10011ba1
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x48]
mov ecx, dword [edx + esi*4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov byte [esp + 0x200], 8
test ecx, ecx
je 0x1000e1ae
push edi
call fcn.10007620
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
inc dword [esp + 0x54]
push ebx
push eax
push ecx
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x20c], 1
call fcn.10007600
mov edx, dword [esp + 0x54]
mov edi, eax
mov eax, dword [esp + 0x4c]
inc edx
cmp eax, edx
ja 0x1000e1f5
push 1
lea ecx, [esp + 0x3c]
call fcn.1000d2c0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
lea esi, [edx + ecx]
cmp eax, esi
ja 0x1000e206
sub esi, eax
mov eax, dword [esp + 0x48]
cmp dword [eax + esi*4], 0
jne 0x1000e221
push 0xc
call fcn.10011ba1
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x48]
mov ecx, dword [edx + esi*4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov byte [esp + 0x200], 9
test ecx, ecx
je 0x1000e245
push edi
call fcn.10007620
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb4]
inc dword [esp + 0x54]
push eax
push ecx
push ebx
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x20c], 1
call fcn.10007600
push eax
lea ecx, [esp + 0x3c]
call fcn.1000d420
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
test ecx, ecx
je 0x1000e2a4
inc eax
mov dword [esp + 0x50], eax
cmp dword [esp + 0x4c], eax
ja 0x1000e295
xor eax, eax
mov dword [esp + 0x50], eax
sub ecx, 1
mov dword [esp + 0x54], ecx
jne 0x1000e2a4
xor eax, eax
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x84]
inc edx
cmp edx, dword [esp + 0x88]
mov dword [esp + 0x84], edx
jl 0x1000d711
mov eax, dword [esp + 0x78]
inc eax
cmp eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
jl 0x1000d6d0
push 0x10
call fcn.10011ba1
add esp, 4
mov dword [esp + 0x7c], eax
mov byte [esp + 0x200], 0xa
test eax, eax
je 0x1000e2f7
mov ecx, eax
call fcn.10007640
mov edi, eax
jmp 0x1000e2f9
xor edi, edi
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x74]
push edx
push eax
mov ecx, edi
mov byte [esp + 0x208], 1
call fcn.100076e0
xor esi, esi
cmp dword [esp + 0x74], esi
jbe 0x1000e341
lea ebx, [ebx]
push esi
lea ecx, [esp + 0x5c]
call fcn.1000d080
push eax
push esi
mov ecx, edi
call fcn.100076b0
mov ecx, eax
call fcn.10007310
inc esi
cmp esi, dword [esp + 0x74]
jb 0x1000e320
xor esi, esi
cmp dword [esp + 0x54], esi
jbe 0x1000e371
lea esp, [esp]
push esi
lea ecx, [esp + 0x3c]
call fcn.1000d080
push eax
push esi
mov ecx, edi
call fcn.100076c0
mov ecx, eax
call fcn.10007620
inc esi
cmp esi, dword [esp + 0x54]
jb 0x1000e350
lea ecx, [esp + 0x38]
call fcn.1000cff0
mov ecx, dword [esp + 0x38]
push ecx
call fcn.10011bdb
add esp, 4
lea ecx, [esp + 0x58]
call fcn.1000cff0
mov edx, dword [esp + 0x58]
push edx
call fcn.10011bdb
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret