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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
xor ebx, ebx
cmp eax, ebx
mov byte [esp + 0xf], 0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], eax
jne 0x10104195
call fcn.100f3b00
mov ecx, dword [edi + 0x54]
push ebx
push ebx
push ecx
lea edx, [ecx + 1]
push 0x14
push eax
mov dword [edi + 0x54], edx
call fcn.100c1760
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x24], ebx
mov ebx, dword [esi + 0x14]
shl edx, 4
add edx, ebx
mov dword [esp + 0x34], ecx
xor ecx, ecx
xor eax, eax
add esp, 0x14
cmp ebx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
jae 0x1010438b
jmp 0x101041f3
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
or edx, dword [eax + 4]
mov esi, dword [ebx]
jne 0x10104242
test byte [ebx + 0x14], 2
jne 0x10104242
test byte [esi + 4], 1
jne 0x10104242
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x30]
push 3
mov ecx, esi
call fcn.100d5100
add esp, 4
test eax, eax
je 0x10104242
mov eax, dword [edi]
push 0
push 0
push esi
push eax
call fcn.100d4360
mov ecx, dword [edi]
push ecx
mov ecx, dword [esp + 0x38]
call fcn.100d3e70
add esp, 0x14
mov dword [esp + 0x24], eax
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 0x10]
cmp edx, dword [eax + 0x30]
jne 0x10104376
test byte [ebx + 0x12], 0x82
je 0x10104376
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x10104376
mov eax, dword [ebx + 0xc]
test eax, eax
jl 0x10104376
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
mov esi, dword [ebx]
shl eax, 4
mov dl, byte [eax + ecx + 0xd]
mov byte [esp + 0xe], dl
call fcn.100d3810
movsx eax, al
sub eax, 0x41
je 0x101042c0
sub eax, 1
je 0x101042ae
xor eax, eax
cmp byte [esp + 0xe], 0x43
setge al
jmp 0x101042b8
xor eax, eax
cmp byte [esp + 0xe], 0x42
sete al
test eax, eax
je 0x10104376
mov edi, dword [ebx + 0xc]
cmp edi, 0x40
jl 0x101042da
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], SysStringLen
jmp 0x101042f0
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.1013fb70
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp byte [esp + 0xf], 0
jne 0x1010431f
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
shl edi, 4
mov edx, dword [edi + ecx]
push edx
push eax
push str.automatic_index_on__s__s_
push 0x11c
call fcn.100a5f10
add esp, 0x10
mov byte [esp + 0xf], 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
and eax, dword [esp + 0x48]
and ecx, dword [esp + 0x4c]
or eax, ecx
jne 0x10104376
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [ecx]
mov edi, dword [esp + 0x20]
add esi, 1
push edx
mov eax, esi
call fcn.10105070
add esp, 4
test eax, eax
jne 0x10104cf0
mov edx, dword [esp + 0x10]
mov eax, edi
mov ecx, dword [eax + 0x30]
mov eax, dword [esp + 0x28]
or dword [esp + 0x48], eax
mov dword [ecx + edx*4], ebx
mov ecx, dword [esp + 0x2c]
or dword [esp + 0x4c], ecx
mov dword [esp + 0x10], esi
add ebx, 0x30
cmp ebx, dword [esp + 0x34]
jb 0x101041f0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov esi, dword [ebp + 0x10]
mov word [ebx + 0x28], dx
mov word [ebx + 0x18], dx
mov dword [ebx + 0x24], 0x4241
mov edx, dword [esi + 0x40]
mov edi, dword [esi + 0x44]
not eax
not ecx
or eax, 0x80000000
mov esi, ecx
and esi, edx
mov edx, dword [esp + 0x1c]
and eax, edi
mov dword [esp + 0x54], eax
movzx eax, word [edx + 0x22]
cmp ax, 0x3f
mov dword [esp + 0x50], esi
jle 0x101043da
mov dword [esp + 0x28], 0x3f
jmp 0x101043e7
mov eax, edx
movzx eax, word [eax + 0x22]
movsx ecx, ax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x28], 0
mov dword [esp + 0x18], 0
jle 0x10104430
jmp 0x10104400
mov ecx, dword [esp + 0x18]
mov eax, 1
xor edx, edx
call fcn.1013fb70
and edx, dword [esp + 0x54]
and eax, esi
or eax, edx
je 0x1010441f
add dword [esp + 0x10], 1
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jl 0x10104400
and edi, 0x80000000
xor eax, eax
or eax, edi
je 0x10104453
mov edx, dword [esp + 0x1c]
movzx eax, word [edx + 0x22]
mov ecx, dword [esp + 0x10]
movsx eax, ax
lea edx, [ecx + eax - 0x3f]
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
mov eax, dword [ebp + 8]
add ecx, 1
push ecx
mov ecx, dword [eax]
xor edx, edx
call fcn.100dfea0
xor ecx, ecx
add esp, 8
cmp eax, ecx
mov dword [esp + 0x18], eax
je 0x10104cf0
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x1c], eax
mov dword [eax], str.auto_index
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x14]
cmp esi, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
jae 0x1010462f
lea esp, [esp]
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x10]
cmp ecx, dword [edx + 0x30]
jne 0x10104622
test byte [esi + 0x12], 0x82
je 0x10104622
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x10104622
mov eax, dword [esi + 0xc]
test eax, eax
jl 0x10104622
mov edi, dword [esi]
mov ecx, edx
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
shl eax, 4
mov dl, byte [eax + ecx + 0xd]
mov eax, dword [edi + 0xc]
mov byte [esp + 0xf], dl
call fcn.100d3550
mov bl, al
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10104528
call fcn.100d3550
test al, al
je 0x1010453d
test bl, bl
je 0x10104541
cmp al, 0x43
jge 0x10104524
cmp bl, 0x43
jl 0x10104549
mov bl, 0x43
jmp 0x1010454b
test dword [edi + 4], 0x800
je 0x10104545
mov eax, dword [edi + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
jmp 0x1010450e
test bl, bl
je 0x10104549
add bl, al
jmp 0x1010454b
test bl, bl
jne 0x1010454b
mov bl, 0x41
movsx eax, bl
sub eax, 0x41
je 0x10104576
sub eax, 1
je 0x10104564
xor eax, eax
cmp byte [esp + 0xf], 0x43
setge al
jmp 0x1010456e
xor eax, eax
cmp byte [esp + 0xf], 0x42
sete al
test eax, eax
je 0x10104622
mov ecx, dword [esi + 0xc]
cmp ecx, 0x40
jl 0x10104587
xor eax, eax
mov edx, SysReAllocString
jmp 0x10104593
mov eax, 1
xor edx, edx
call fcn.1013fb70
mov ecx, eax
and ecx, dword [esp + 0x48]
mov edi, edx
and edi, dword [esp + 0x4c]
or ecx, edi
jne 0x10104622
or dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
or dword [esp + 0x4c], edx
mov edx, dword [eax + 4]
mov ecx, dword [esi]
mov ax, word [esi + 0xc]
mov edi, dword [esp + 0x14]
mov word [edx + edi*2], ax
mov edi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, 0x100
test dword [ecx + 4], eax
je 0x101045d6
mov edx, dword [ebp + 8]
push edx
jmp 0x101045f8
test edi, edi
je 0x101045e5
test dword [edi + 4], eax
je 0x101045e5
mov eax, dword [ebp + 8]
push eax
jmp 0x101045f6
mov ebx, dword [ebp + 8]
push ebx
call fcn.100d3690
add esp, 4
test eax, eax
jne 0x10104604
push ebx
mov ecx, edi
call fcn.100d3690
add esp, 4
test eax, eax
je 0x10104608
mov eax, dword [eax]
jmp 0x1010460d
mov eax, 0x1014e614
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x20]
mov ecx, dword [esp + 0x14]
mov dword [edx + ecx*4], eax
add ecx, 1
mov dword [esp + 0x14], ecx
add esi, 0x30
cmp esi, dword [esp + 0x34]
jb 0x101044b0
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
xor edi, edi
cmp dword [esp + 0x28], edi
jle 0x1010467b
nop
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.1013fb70
and eax, dword [esp + 0x50]
and edx, dword [esp + 0x54]
or eax, edx
je 0x1010466e
mov eax, dword [ebx + 4]
mov word [eax + esi*2], di
mov ecx, dword [ebx + 0x20]
mov dword [ecx + esi*4], 0x1014e614
add esi, 1
add edi, 1
cmp edi, dword [esp + 0x28]
jl 0x10104640
mov dword [esp + 0x14], esi
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x44]
and ecx, 0x80000000
xor eax, eax
or eax, ecx
je 0x101046c3
mov ecx, dword [esp + 0x1c]
mov eax, 0x3f
cmp word [ecx + 0x22], ax
jle 0x101046c3
lea esp, [esp]
mov edx, dword [ebx + 4]
mov word [edx + esi*2], ax
mov edx, dword [ebx + 0x20]
mov dword [edx + esi*4], 0x1014e614
movsx edx, word [ecx + 0x22]
add eax, 1
add esi, 1
cmp eax, edx
jl 0x101046a0
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov ebx, dword [ebp + 8]
mov word [ecx + esi*2], 0xffff
mov edx, dword [eax + 0x20]
mov eax, dword [ebp + 0x1c]
mov dword [edx + esi*4], 0x1014e614
mov ecx, dword [ebx + 0x48]
mov esi, dword [esp + 0x38]
mov dword [eax + 8], ecx
add dword [ebx + 0x48], 1
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + 8]
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x18]
add ecx, 1
cmp dword [edi + 0x58], eax
jg 0x10104715
push 0
push ecx
push edx
push 0x68
mov eax, esi
call fcn.100c1720
add esp, 0x10
jmp 0x1010473c
lea edi, [eax + 1]
mov dword [esi + 0x20], edi
mov edi, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 0x68
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 8]
push ecx
push ebx
call fcn.100e1eb0
mov edx, dword [edi]
add esp, 8
cmp byte [edx + 0x45], 0
je 0x10104765
mov ecx, eax
mov eax, 0xfffffffa
mov edi, edx
call fcn.100c1e60
jmp 0x10104799
mov edx, dword [edi + 0x20]
mov ecx, dword [edi + 4]
sub edx, 1
lea edx, [edx + edx*4]
cmp byte [ecx + edx*4 + 1], 0
lea edx, [ecx + edx*4]
je 0x1010478e
push eax
push edx
mov eax, 0xfffffffa
mov ecx, edi
call fcn.100c2040
add esp, 8
jmp 0x10104799
test eax, eax
je 0x10104799
mov dword [edx + 0x10], eax
mov byte [edx + 1], 0xfa
add dword [ebx + 0x6c], 1
mov ecx, dword [ebp + 0x1c]
movzx eax, byte [ecx + 0x2c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 4]
shl edx, 4
test byte [edx + eax + 0x30], 0x10
lea edi, [edx + eax + 8]
mov dword [esp + 0x28], edi
je 0x1010489e
mov ecx, dword [edi + 0x1c]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x20]
cmp dword [edx + 0x58], ecx
jg 0x101047eb
push 0
push 0
push 0
push 0x4a
mov eax, esi
call fcn.100c1720
add esp, 0x10
jmp 0x10104814
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*4]
xor edx, edx
mov byte [eax], 0x4a
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
mov eax, ecx
mov ecx, dword [esi + 0x18]
mov edi, dword [edi + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x20]
cmp dword [ecx + 0x58], eax
jg 0x1010483c
push edi
mov edi, dword [esp + 0x38]
push 0
push edi
push 0xf
mov eax, esi
call fcn.100c1720
add esp, 0x10
jmp 0x10104869
mov ecx, dword [esi + 4]
lea edx, [eax + 1]
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x34]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov dword [eax + 0xc], edi
mov byte [eax], 0xf
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov edi, edx
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x10104887
push 0
push 0
push edi
push 0x10
mov eax, esi
call fcn.100c1720
add esp, 0x10
jmp 0x101048e7
lea edx, [ecx + 1]
mov dword [esi + 0x20], edx
mov edx, dword [esi + 4]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov byte [eax], 0x10
mov dword [eax + 4], edi
jmp 0x101048d4
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x101048bf
push 0
push 0
push edx
push 0x37
mov eax, esi
call fcn.100c1720
add esp, 0x10
jmp 0x101048e7
mov edi, dword [esi + 4]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea eax, [ecx + ecx*4]
lea eax, [edi + eax*4]
mov byte [eax], 0x37
mov dword [eax + 4], edx
xor edx, edx
mov byte [eax + 3], dl
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
mov eax, ecx
cmp dword [esp + 0x24], 0
mov dword [esp + 0x34], eax
je 0x10104a57
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x74]
lea edx, [ecx + 1]
mov dword [eax + 0x74], edx
lea edx, [ecx - 1]
test ecx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jne 0x10104a22
mov ebx, dword [eax + 0x78]
mov edi, dword [eax]
lea esi, [ecx*8 + 4]
xor ecx, ecx
test ebx, ebx
jne 0x10104932
push ecx
push esi
mov eax, edi
call fcn.100a43c0
jmp 0x10104961
cmp ebx, dword [edi + 0x120]
jb 0x10104958
cmp ebx, dword [edi + 0x124]
jae 0x10104958
movzx eax, word [edi + 0x104]
cdq
cmp ecx, edx
ja 0x10104958
jb 0x10104954
cmp esi, eax
ja 0x10104958
mov esi, ebx
jmp 0x10104966
push ecx
push esi
mov esi, edi
call fcn.100a44d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x10104a10
test ebx, ebx
je 0x10104a10
test edi, edi
je 0x101049b7
cmp dword [edi + 0x1c8], esi
je 0x10104990
mov eax, ebx
mov ecx, edi
call fcn.100a40a0
jmp 0x10104a10
cmp ebx, dword [edi + 0x120]
jb 0x101049b7
cmp ebx, dword [edi + 0x124]
jae 0x101049b7
mov eax, dword [edi + 0x11c]
mov dword [ebx], eax
add dword [edi + 0x108], 0xffffffff
mov dword [edi + 0x11c], ebx
jmp 0x10104a10
cmp dword [0x10177158], 0
je 0x10104a06
mov eax, dword [0x1018dac0]
test eax, eax
je 0x101049d3
push eax
call dword [0x101771b0]
add esp, 4
push ebx
call dword [0x1017718c]
sub dword [0x1018d910], eax
sub dword [0x1018d934], 1
add esp, 4
push ebx
call dword [0x10177184]
mov eax, dword [0x1018dac0]
add esp, 4
test eax, eax
je 0x10104a10
push eax
call dword [0x101771b8]
jmp 0x10104a0d
push ebx
call dword [0x10177184]
add esp, 4
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x78], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x78]
test eax, eax
je 0x10104a30
mov dword [eax + ecx*4], 0xffffffff
mov edx, dword [esp + 0x24]
or eax, 0xffffffff
sub eax, dword [esp + 0x10]
push 0x10
push eax
push edx
push ebx
mov dword [esp + 0x4c], eax
call fcn.100d7e70
mov eax, dword [esp + 0x30]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x10104a6b
add dword [ebx + 0x4c], 1
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x20], eax
jmp 0x10104a7b
sub al, 1
movzx ecx, al
mov byte [ebx + 0x13], al
mov edx, dword [ebx + ecx*4 + 0x1c]
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x20]
mov edi, dword [ebp + 0x1c]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
mov esi, dword [ebp + 8]
push 0
push 0
push 0
push ebx
push eax
push ecx
xor eax, eax
call fcn.100e3b30
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x50]
mov edx, dword [edi + 0x18]
mov esi, eax
mov eax, dword [edi + 0x20]
add esp, 0x18
cmp dword [edx + 0x58], eax
jg 0x10104ac5
push 0
push ebx
push ecx
push 0x7c
mov eax, edi
call fcn.100c1720
add esp, 0x10
jmp 0x10104aec
lea edx, [eax + 1]
mov dword [edi + 0x20], edx
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax], 0x7c
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
jne 0x10104b02
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 4]
lea ecx, [eax + eax*4]
mov byte [edx + ecx*4 - 0x11], 0x10
cmp dword [esp + 0x24], 0
je 0x10104b2e
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + 0x78]
test eax, eax
je 0x10104b25
mov edx, dword [esp + 0x3c]
lea edx, [edx*4 + 4]
sub eax, edx
mov edx, dword [edi + 0x20]
mov dword [eax], edx
mov eax, dword [edi + 0x20]
sub eax, 1
mov dword [ecx + 0x60], eax
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x28], 0x10
je 0x10104be5
mov eax, dword [esp + 0x40]
test eax, eax
jge 0x10104b4a
mov eax, dword [edi + 0x20]
sub eax, 1
mov edx, dword [edi]
cmp byte [edx + 0x45], 0
je 0x10104b59
mov eax, 0x101795e8
jmp 0x10104b62
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x34]
add esi, edx
mov edx, dword [esp + 0x28]
mov dword [eax + 8], esi
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 4]
mov esi, dword [edx + 0x20]
push 1
push ecx
mov ecx, ebx
mov edx, edi
call fcn.10104080
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
add esp, 8
cmp dword [ecx + 0x58], eax
jg 0x10104bb4
push 0
push ebx
push 0
push 0xd
mov eax, edi
call fcn.100c1720
mov eax, dword [esp + 0x38]
add esp, 0x10
and dword [eax + 0x28], 0xffffffef
jmp 0x10104c36
mov ecx, dword [edi + 4]
lea edx, [eax + 1]
mov dword [edi + 0x20], edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0xd
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, dword [esp + 0x28]
and dword [eax + 0x28], 0xffffffef
jmp 0x10104c36
mov eax, dword [edi + 0x20]
mov esi, dword [edi + 0x18]
cmp dword [esi + 0x58], eax
mov ebx, dword [esp + 0x34]
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + 4]
lea ecx, [ebx + 1]
jg 0x10104c0f
push 0
push ecx
push edx
push 7
mov eax, edi
call fcn.100c1720
add esp, 0x10
jmp 0x10104c36
lea esi, [eax + 1]
mov dword [edi + 0x20], esi
mov esi, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 7
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov ecx, dword [edi]
cmp byte [ecx + 0x45], 0
jne 0x10104c4c
mov eax, dword [edi + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov byte [eax + edx*4 - 0x11], 3
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x18]
sub ecx, 1
test ebx, ebx
mov dword [edx + 0x60], ecx
mov ecx, dword [edi + 0x20]
jge 0x10104c62
lea ebx, [ecx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
je 0x10104c71
mov eax, 0x101795e8
jmp 0x10104c7a
mov eax, dword [edi + 4]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*4]
mov esi, dword [esp + 0x20]
test esi, esi
mov dword [eax + 8], ecx
mov eax, dword [ebp + 8]
je 0x10104cb0
mov bl, byte [eax + 0x13]
cmp bl, 8
jae 0x10104cb0
xor ecx, ecx
lea edx, [eax + 0x7c]
cmp dword [edx + 0xc], esi
je 0x10104cde
add ecx, 1
add edx, 0x14
cmp ecx, 0xa
jl 0x10104c95
movzx ecx, bl
mov dword [eax + ecx*4 + 0x1c], esi
add byte [eax + 0x13], 1
call fcn.100d65c0
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
sub edx, 1
mov dword [eax + 0x60], edx
mov eax, dword [esp + 0x44]
test eax, eax
mov ecx, dword [edi + 0x20]
jge 0x10104ccf
lea eax, [ecx - 1]
mov edx, dword [edi]
cmp byte [edx + 0x45], 0
je 0x10104ce4
mov eax, 0x101795e8
jmp 0x10104ced
mov byte [edx + 6], 1
jmp 0x10104cb0
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10104d07
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
call fcn.100d4200
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret