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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x1060f098]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, ecx
mov dword [esp + 0x38], edx
mov ecx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [eax + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x20], edi
mov byte [esp + 0xf], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x38], esi
mov dword [esp + 0x64], ecx
cmp dword [eax + 0x30], ecx
jg 0x100ad342
push 0
push 0
push 0
mov edx, 0x14
mov ecx, esi
call fcn.1005fb00
mov edx, dword [esp + 0x50]
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x100ad378
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x14
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x10]
xor ecx, ecx
mov ebx, dword [edx + 0x14]
xorps xmm0, xmm0
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
movlpd qword [esp + 0x10], xmm0
lea eax, [eax + eax*2]
mov edx, dword [edx + 0x40]
shl eax, 4
add eax, ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], eax
cmp ebx, eax
jae 0x100ad533
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
jmp 0x100ad3c9
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
or eax, dword [edx + 4]
mov edi, dword [ebx]
jne 0x100ad437
test byte [ebx + 0xa], 2
jne 0x100ad437
test byte [edi + 4], 1
jne 0x100ad437
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x68]
mov edx, edi
mov byte [esp + 0x7c], 3
mov dword [esp + 0x6c], fcn.10076710
mov dword [esp + 0x70], 0x100766b0
mov eax, dword [eax + 0x30]
mov dword [esp + 0x80], eax
call fcn.10072220
cmp byte [esp + 0x7c], 0
je 0x100ad437
mov edx, edi
mov edi, dword [esp + 0x1c]
push 0
push 0
mov ecx, dword [edi]
call fcn.100757d0
mov edx, dword [esp + 0x54]
mov ecx, dword [edi]
push eax
call fcn.100752d0
add esp, 0xc
mov dword [esp + 0x4c], eax
push dword [ebp + 0x10]
mov edi, dword [esp + 0x24]
mov ecx, ebx
push dword [ebp + 0xc]
mov edx, edi
call fcn.100ad230
add esp, 8
test eax, eax
je 0x100ad518
mov edx, dword [ebx + 0x1c]
xor edi, edi
cmp edx, 0x40
jl 0x100ad469
mov dword [esp + 0x2c], 0x80000000
jmp 0x100ad482
mov eax, edx
xor ecx, ecx
bts edi, eax
cmp eax, 0x20
cmovae ecx, edi
xor edi, ecx
cmp eax, 0x40
cmovae ecx, edi
mov dword [esp + 0x2c], ecx
cmp byte [esp + 0xf], 0
jne 0x100ad4ae
mov ecx, dword [esp + 0x28]
add edx, edx
mov eax, dword [ecx + 4]
push dword [eax + edx*8]
push dword [ecx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.100436c0
add esp, 0x10
mov byte [esp + 0xf], 1
mov eax, dword [esp + 0x2c]
mov ecx, edi
mov edx, dword [esp + 0x34]
and eax, edx
and ecx, dword [esp + 0x30]
or ecx, eax
jne 0x100ad512
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
inc eax
mov dword [esp + 0x10], eax
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
call fcn.100ae2d0
add esp, 4
test eax, eax
jne 0x100ade1b
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
or dword [esp + 0x30], edi
mov eax, dword [eax + 0x30]
or edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x34], edx
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
jmp 0x100ad520
mov edi, dword [esp + 0x20]
jmp 0x100ad51c
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add ebx, 0x30
cmp ebx, dword [esp + 0x40]
jb 0x100ad3c5
mov ebx, dword [esp + 0x30]
jmp 0x100ad53b
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
not edx
or edx, 0x80000000
not ebx
mov word [eax + 0x28], cx
mov word [eax + 0x18], cx
mov dword [eax + 0x24], 0x4241
mov eax, dword [edi + 0x44]
and edx, eax
mov ecx, dword [edi + 0x40]
and ebx, ecx
mov dword [esp + 0x34], edx
xor edi, edi
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
movzx ebx, word [edx + 0x2a]
mov edx, 0x3f
mov dword [esp + 0x10], ebx
cmp dx, bx
jge 0x100ad590
mov dword [esp + 0x2c], edx
jmp 0x100ad59b
movsx edx, bx
mov dword [esp + 0x2c], edx
test edx, edx
jle 0x100ad5dd
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x30]
and ecx, ebx
or edx, ecx
je 0x100ad5c8
inc dword [esp + 0x18]
inc edi
cmp edi, esi
jl 0x100ad5a3
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
test eax, eax
jg 0x100ad5f7
jl 0x100ad5e7
test ecx, ecx
jae 0x100ad5f7
mov ecx, dword [esp + 0x18]
movsx eax, bx
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x10]
mov ebx, dword [esp + 0x1c]
push eax
push 0
lea edx, [edx + 1]
mov ecx, dword [ebx]
call fcn.10083960
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x100ade1f
mov ecx, dword [esp + 0x48]
xor ebx, ebx
mov edi, dword [esp + 0x44]
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov dword [ecx + 0x20], eax
mov ecx, dword [esp + 0x28]
mov dword [eax], str.auto_index
mov dword [eax + 0xc], ecx
mov edi, dword [edi + 0x14]
mov dword [esp + 0x58], edi
cmp edi, dword [esp + 0x40]
jae 0x100ad7ce
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
nop dword [eax + eax]
mov eax, dword [edi + 0x14]
cmp eax, dword [edx + 0x30]
jne 0x100ad7b9
movzx ecx, word [edi + 0xc]
test cl, 0x82
je 0x100ad7b9
test byte [edx + 0x24], 8
je 0x100ad69f
mov eax, dword [edi]
test byte [eax + 4], 1
jne 0x100ad69f
test cl, cl
js 0x100ad7b9
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x100ad7b9
mov ecx, dword [edi + 0x1c]
test ecx, ecx
js 0x100ad7b9
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xd]
mov ecx, dword [edi]
mov byte [esp + 0xf], al
call fcn.10074710
movsx eax, al
sub eax, 0x41
je 0x100ad700
sub eax, 1
je 0x100ad6ee
xor eax, eax
cmp byte [esp + 0xf], 0x43
setge al
jmp 0x100ad6f8
xor eax, eax
cmp byte [esp + 0xf], 0x42
sete al
test eax, eax
je 0x100ad7b5
mov ecx, dword [edi + 0x1c]
xor edi, edi
cmp ecx, 0x40
jl 0x100ad711
mov eax, 0x80000000
jmp 0x100ad724
xor eax, eax
bts edi, ecx
cmp ecx, 0x20
cmovae eax, edi
xor edi, eax
cmp ecx, 0x40
cmovae eax, edi
mov ecx, edi
mov dword [esp + 0x10], eax
and ecx, dword [esp + 0x50]
and eax, dword [esp + 0x54]
or ecx, eax
jne 0x100ad7b1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
or dword [esp + 0x50], edi
mov eax, dword [esp + 0x54]
or eax, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
mov edx, dword [edx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x54], eax
mov ax, word [edi + 0x1c]
mov word [ecx + ebx*2], ax
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x10], eax
test dword [edx + 4], 0x100
jne 0x100ad792
test eax, eax
je 0x100ad783
test dword [eax + 4], 0x100
je 0x100ad783
mov edx, eax
jmp 0x100ad792
mov ecx, esi
call fcn.10074550
test eax, eax
jne 0x100ad7a2
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10074550
mov ecx, 0x105f7218
test eax, eax
je 0x100ad7a4
mov ecx, dword [eax]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov dword [eax + ebx*4], ecx
inc ebx
jmp 0x100ad7b5
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
add edi, 0x30
mov dword [esp + 0x58], edi
cmp edi, dword [esp + 0x40]
jb 0x100ad670
mov esi, dword [esp + 0x38]
xor edi, edi
cmp dword [esp + 0x2c], edi
jle 0x100ad820
mov esi, dword [esp + 0x24]
nop word [eax + eax]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x30]
and ecx, dword [esp + 0x34]
or edx, ecx
je 0x100ad815
mov eax, dword [esi + 4]
mov word [eax + ebx*2], di
mov eax, dword [esi + 0x20]
mov dword [eax + ebx*4], 0x105f7218
inc ebx
inc edi
cmp edi, dword [esp + 0x2c]
jl 0x100ad7e0
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x44], 0
jg 0x100ad864
jl 0x100ad832
cmp dword [eax + 0x40], 0
jae 0x100ad864
mov edi, dword [esp + 0x28]
mov eax, 0x3f
mov edx, dword [esp + 0x24]
cmp ax, word [edi + 0x2a]
jge 0x100ad868
mov ecx, eax
mov eax, dword [edx + 4]
mov word [eax + ebx*2], cx
inc ecx
mov eax, dword [edx + 0x20]
mov dword [eax + ebx*4], 0x105f7218
inc ebx
movsx eax, word [edi + 0x2a]
cmp ecx, eax
jl 0x100ad847
jmp 0x100ad868
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 4]
or ecx, 0xffffffff
mov edi, dword [esp + 0x1c]
mov word [eax + ebx*2], cx
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
inc edx
mov dword [eax + ebx*4], 0x105f7218
mov eax, dword [edi + 0x28]
mov dword [ecx + 8], eax
inc dword [edi + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x100ad8bf
push 0
push edx
push dword [esp + 0x18]
mov edx, 0x6d
mov ecx, esi
call fcn.1005fb00
add esp, 0xc
jmp 0x100ad8f5
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x6d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 8]
mov ecx, edi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
call fcn.10085c80
mov dword [esp + 0x40], eax
test eax, eax
je 0x100ad944
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
cmp byte [ecx + 0x49], 0
je 0x100ad92b
push eax
mov edx, 0xfffffff7
call fcn.100606a0
add esp, 4
jmp 0x100ad944
mov eax, dword [edx + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
mov edx, dword [esp + 0x40]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
inc dword [edi + 0x3c]
mov edx, dword [esp + 0x3c]
movzx eax, byte [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x44]
shl ecx, 4
mov eax, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esi + 0xc]
add edi, 8
add edi, ecx
mov dword [esp + 0x44], edi
test byte [edi + 0x28], 0x10
je 0x100ada79
mov ecx, dword [esi + 0x88]
mov edx, dword [edi + 0x1c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], ecx
cmp dword [eax + 0x30], ecx
jg 0x100ad9a9
push 0
push 0
push 0
mov edx, 0x43
mov ecx, esi
call fcn.1005fb00
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x60], eax
jmp 0x100ad9df
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov edi, dword [edi + 0x18]
cmp dword [eax + 0x30], ecx
jg 0x100ada09
push edi
push 0
push edx
mov edx, 0xf
mov ecx, esi
call fcn.1005fb00
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100ada3b
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x100ada61
push 0
push 0
push edx
mov edx, 0x10
mov ecx, esi
call fcn.1005fb00
add esp, 0xc
mov edi, eax
jmp 0x100adad5
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x10
jmp 0x100adab5
mov edi, dword [esi + 0x88]
mov edx, dword [edx + 4]
cmp dword [eax + 0x30], edi
jg 0x100ada9f
push 0
push 0
push edx
mov edx, 0x25
mov ecx, esi
call fcn.1005fb00
add esp, 0xc
mov edi, eax
jmp 0x100adad5
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x25
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
cmp dword [esp + 0x4c], 0
je 0x100adb4b
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x5c], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x100adb19
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x48]
mov ecx, dword [ecx]
push 0
push eax
call fcn.10041540
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, dword [esp + 0x5c]
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x100adb27
mov dword [eax + edx*4], 0xffffffff
not edx
push 0x10
push edx
push dword [esp + 0x54]
mov dword [esp + 0x68], edx
push dword [esp + 0x28]
call fcn.1007b340
mov eax, dword [esp + 0x58]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 0x13]
test al, al
jne 0x100adb5e
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
jmp 0x100adb6d
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x15c]
mov edx, dword [esp + 0x3c]
push 0
push 0
push 0
push 0
push eax
push dword [edx + 4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
call fcn.10087cc0
mov ecx, dword [esi + 0xc]
add esp, 0x18
mov edx, dword [esi + 0x88]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 8]
mov dword [esp + 0x10], eax
cmp dword [ecx + 0x30], edx
jg 0x100adbc3
mov edx, dword [esp + 0x28]
mov ecx, esi
push 0
push edx
push eax
mov edx, 0x81
call fcn.1005fb00
add esp, 0xc
jmp 0x100adbf9
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x81
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x100adc13
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
cmp dword [esp + 0x4c], 0
je 0x100adc39
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x100adc39
mov eax, dword [esp + 0x5c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
test byte [eax + 0x28], 0x10
je 0x100adcf8
mov ecx, dword [esp + 0x60]
test ecx, ecx
jns 0x100adc56
mov ecx, dword [esi + 0x88]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100adc65
mov ecx, 0x106159c4
jmp 0x100adc6e
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x40]
mov edx, edi
add eax, ebx
mov ebx, dword [esp + 0x44]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
push 1
push dword [ebx + 0x20]
push dword [eax + 4]
call fcn.100ad180
mov eax, dword [esi + 0xc]
add esp, 0xc
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x100adcc0
push 0
push edi
push 0
mov edx, 0xd
mov ecx, esi
call fcn.1005fb00
add esp, 0xc
and dword [ebx + 0x28], 0xffffffef
jmp 0x100add56
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
and dword [ebx + 0x28], 0xffffffef
jmp 0x100add56
mov eax, dword [esp + 0x3c]
lea edx, [edi + 1]
mov ecx, dword [esi + 0x88]
mov ebx, dword [eax + 4]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x100add25
push 0
push edx
push ebx
mov edx, 7
mov ecx, esi
call fcn.1005fb00
add esp, 0xc
jmp 0x100add56
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
lea edx, [edi + 1]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x100add70
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esi + 0x88]
test edi, edi
jns 0x100add7d
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100add8c
mov eax, 0x106159c4
jmp 0x100add95
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ebx, dword [esp + 0x1c]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x28]
test edx, edx
je 0x100adddc
mov al, byte [ebx + 0x13]
mov byte [esp + 0xf], al
cmp al, 8
jae 0x100adddc
movzx edi, byte [ebx + 0x19]
lea eax, [ebx + 0x94]
xor ecx, ecx
test edi, edi
je 0x100addcd
nop
cmp dword [eax + 0xc], edx
je 0x100ade06
inc ecx
add eax, 0x14
cmp ecx, edi
jl 0x100addc0
movzx eax, byte [esp + 0xf]
mov dword [ebx + eax*4 + 0x15c], edx
inc byte [ebx + 0x13]
mov ecx, ebx
call fcn.10079340
mov ecx, dword [esp + 0x64]
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x100addf4
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100ade0c
mov eax, 0x106159c4
mov dword [eax + 8], edx
jmp 0x100ade1f
mov byte [eax + 6], 1
jmp 0x100adddc
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x100ade1f
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x100ade30
mov ecx, dword [ebx]
mov edx, eax
call fcn.100755f0
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100d22d5
mov esp, ebp
pop ebp
ret