Function at 0x10103f40
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 0x10103f75
call fcn.100f38e0
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.100c1540
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 0x1010416b
jmp 0x10103fd3
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
or edx, dword [eax + 4]
mov esi, dword [ebx]
jne 0x10104022
test byte [ebx + 0x14], 2
jne 0x10104022
test byte [esi + 4], 1
jne 0x10104022
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x30]
push 3
mov ecx, esi
call fcn.100d4ee0
add esp, 4
test eax, eax
je 0x10104022
mov eax, dword [edi]
push 0
push 0
push esi
push eax
call fcn.100d4140
mov ecx, dword [edi]
push ecx
mov ecx, dword [esp + 0x38]
call fcn.100d3c50
add esp, 0x14
mov dword [esp + 0x24], eax
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 0x10]
cmp edx, dword [eax + 0x30]
jne 0x10104156
test byte [ebx + 0x12], 0x82
je 0x10104156
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x10104156
mov eax, dword [ebx + 0xc]
test eax, eax
jl 0x10104156
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.100d35f0
movsx eax, al
sub eax, 0x41
je 0x101040a0
sub eax, 1
je 0x1010408e
xor eax, eax
cmp byte [esp + 0xe], 0x43
setge al
jmp 0x10104098
xor eax, eax
cmp byte [esp + 0xe], 0x42
sete al
test eax, eax
je 0x10104156
mov edi, dword [ebx + 0xc]
cmp edi, 0x40
jl 0x101040ba
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], SysStringLen
jmp 0x101040d0
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.10139f80
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp byte [esp + 0xf], 0
jne 0x101040ff
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.100a5cf0
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 0x10104156
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.10104e50
add esp, 4
test eax, eax
jne 0x10104ad0
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 0x10103fd0
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 0x101041ba
mov dword [esp + 0x28], 0x3f
jmp 0x101041c7
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 0x10104210
jmp 0x101041e0
mov ecx, dword [esp + 0x18]
mov eax, 1
xor edx, edx
call fcn.10139f80
and edx, dword [esp + 0x54]
and eax, esi
or eax, edx
je 0x101041ff
add dword [esp + 0x10], 1
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jl 0x101041e0
and edi, 0x80000000
xor eax, eax
or eax, edi
je 0x10104233
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.100dfc80
xor ecx, ecx
add esp, 8
cmp eax, ecx
mov dword [esp + 0x18], eax
je 0x10104ad0
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 0x1010440f
lea esp, [esp]
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x10]
cmp ecx, dword [edx + 0x30]
jne 0x10104402
test byte [esi + 0x12], 0x82
je 0x10104402
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x10104402
mov eax, dword [esi + 0xc]
test eax, eax
jl 0x10104402
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.100d3330
mov bl, al
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10104308
call fcn.100d3330
test al, al
je 0x1010431d
test bl, bl
je 0x10104321
cmp al, 0x43
jge 0x10104304
cmp bl, 0x43
jl 0x10104329
mov bl, 0x43
jmp 0x1010432b
test dword [edi + 4], 0x800
je 0x10104325
mov eax, dword [edi + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
jmp 0x101042ee
test bl, bl
je 0x10104329
add bl, al
jmp 0x1010432b
test bl, bl
jne 0x1010432b
mov bl, 0x41
movsx eax, bl
sub eax, 0x41
je 0x10104356
sub eax, 1
je 0x10104344
xor eax, eax
cmp byte [esp + 0xf], 0x43
setge al
jmp 0x1010434e
xor eax, eax
cmp byte [esp + 0xf], 0x42
sete al
test eax, eax
je 0x10104402
mov ecx, dword [esi + 0xc]
cmp ecx, 0x40
jl 0x10104367
xor eax, eax
mov edx, SysReAllocString
jmp 0x10104373
mov eax, 1
xor edx, edx
call fcn.10139f80
mov ecx, eax
and ecx, dword [esp + 0x48]
mov edi, edx
and edi, dword [esp + 0x4c]
or ecx, edi
jne 0x10104402
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 0x101043b6
mov edx, dword [ebp + 8]
push edx
jmp 0x101043d8
test edi, edi
je 0x101043c5
test dword [edi + 4], eax
je 0x101043c5
mov eax, dword [ebp + 8]
push eax
jmp 0x101043d6
mov ebx, dword [ebp + 8]
push ebx
call fcn.100d3470
add esp, 4
test eax, eax
jne 0x101043e4
push ebx
mov ecx, edi
call fcn.100d3470
add esp, 4
test eax, eax
je 0x101043e8
mov eax, dword [eax]
jmp 0x101043ed
mov eax, 0x101482e4
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 0x10104290
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
xor edi, edi
cmp dword [esp + 0x28], edi
jle 0x1010445b
nop
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.10139f80
and eax, dword [esp + 0x50]
and edx, dword [esp + 0x54]
or eax, edx
je 0x1010444e
mov eax, dword [ebx + 4]
mov word [eax + esi*2], di
mov ecx, dword [ebx + 0x20]
mov dword [ecx + esi*4], 0x101482e4
add esi, 1
add edi, 1
cmp edi, dword [esp + 0x28]
jl 0x10104420
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 0x101044a3
mov ecx, dword [esp + 0x1c]
mov eax, 0x3f
cmp word [ecx + 0x22], ax
jle 0x101044a3
lea esp, [esp]
mov edx, dword [ebx + 4]
mov word [edx + esi*2], ax
mov edx, dword [ebx + 0x20]
mov dword [edx + esi*4], 0x101482e4
movsx edx, word [ecx + 0x22]
add eax, 1
add esi, 1
cmp eax, edx
jl 0x10104480
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], 0x101482e4
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 0x101044f5
push 0
push ecx
push edx
push 0x68
mov eax, esi
call fcn.100c1500
add esp, 0x10
jmp 0x1010451c
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.100e1c90
mov edx, dword [edi]
add esp, 8
cmp byte [edx + 0x45], 0
je 0x10104545
mov ecx, eax
mov eax, 0xfffffffa
mov edi, edx
call fcn.100c1c40
jmp 0x10104579
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 0x1010456e
push eax
push edx
mov eax, 0xfffffffa
mov ecx, edi
call fcn.100c1e20
add esp, 8
jmp 0x10104579
test eax, eax
je 0x10104579
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 0x1010467e
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 0x101045cb
push 0
push 0
push 0
push 0x4a
mov eax, esi
call fcn.100c1500
add esp, 0x10
jmp 0x101045f4
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 0x1010461c
push edi
mov edi, dword [esp + 0x38]
push 0
push edi
push 0xf
mov eax, esi
call fcn.100c1500
add esp, 0x10
jmp 0x10104649
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 0x10104667
push 0
push 0
push edi
push 0x10
mov eax, esi
call fcn.100c1500
add esp, 0x10
jmp 0x101046c7
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 0x101046b4
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x1010469f
push 0
push 0
push edx
push 0x37
mov eax, esi
call fcn.100c1500
add esp, 0x10
jmp 0x101046c7
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 0x10104837
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 0x10104802
mov ebx, dword [eax + 0x78]
mov edi, dword [eax]
lea esi, [ecx*8 + 4]
xor ecx, ecx
test ebx, ebx
jne 0x10104712
push ecx
push esi
mov eax, edi
call fcn.100a41a0
jmp 0x10104741
cmp ebx, dword [edi + 0x120]
jb 0x10104738
cmp ebx, dword [edi + 0x124]
jae 0x10104738
movzx eax, word [edi + 0x104]
cdq
cmp ecx, edx
ja 0x10104738
jb 0x10104734
cmp esi, eax
ja 0x10104738
mov esi, ebx
jmp 0x10104746
push ecx
push esi
mov esi, edi
call fcn.100a42b0
mov esi, eax
add esp, 8
test esi, esi
jne 0x101047f0
test ebx, ebx
je 0x101047f0
test edi, edi
je 0x10104797
cmp dword [edi + 0x1c8], esi
je 0x10104770
mov eax, ebx
mov ecx, edi
call fcn.100a3e80
jmp 0x101047f0
cmp ebx, dword [edi + 0x120]
jb 0x10104797
cmp ebx, dword [edi + 0x124]
jae 0x10104797
mov eax, dword [edi + 0x11c]
mov dword [ebx], eax
add dword [edi + 0x108], 0xffffffff
mov dword [edi + 0x11c], ebx
jmp 0x101047f0
cmp dword [0x10170158], 0
je 0x101047e6
mov eax, dword [0x10186ab0]
test eax, eax
je 0x101047b3
push eax
call dword [0x101701b0]
add esp, 4
push ebx
call dword [0x1017018c]
sub dword [0x10186900], eax
sub dword [0x10186924], 1
add esp, 4
push ebx
call dword [0x10170184]
mov eax, dword [0x10186ab0]
add esp, 4
test eax, eax
je 0x101047f0
push eax
call dword [0x101701b8]
jmp 0x101047ed
push ebx
call dword [0x10170184]
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 0x10104810
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.100d7c50
mov eax, dword [esp + 0x30]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x1010484b
add dword [ebx + 0x4c], 1
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x20], eax
jmp 0x1010485b
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.100e3910
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 0x101048a5
push 0
push ebx
push ecx
push 0x7c
mov eax, edi
call fcn.100c1500
add esp, 0x10
jmp 0x101048cc
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 0x101048e2
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 0x1010490e
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + 0x78]
test eax, eax
je 0x10104905
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 0x101049c5
mov eax, dword [esp + 0x40]
test eax, eax
jge 0x1010492a
mov eax, dword [edi + 0x20]
sub eax, 1
mov edx, dword [edi]
cmp byte [edx + 0x45], 0
je 0x10104939
mov eax, 0x101725d8
jmp 0x10104942
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.10103e60
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
add esp, 8
cmp dword [ecx + 0x58], eax
jg 0x10104994
push 0
push ebx
push 0
push 0xd
mov eax, edi
call fcn.100c1500
mov eax, dword [esp + 0x38]
add esp, 0x10
and dword [eax + 0x28], 0xffffffef
jmp 0x10104a16
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 0x10104a16
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 0x101049ef
push 0
push ecx
push edx
push 7
mov eax, edi
call fcn.100c1500
add esp, 0x10
jmp 0x10104a16
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 0x10104a2c
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 0x10104a42
lea ebx, [ecx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
je 0x10104a51
mov eax, 0x101725d8
jmp 0x10104a5a
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 0x10104a90
mov bl, byte [eax + 0x13]
cmp bl, 8
jae 0x10104a90
xor ecx, ecx
lea edx, [eax + 0x7c]
cmp dword [edx + 0xc], esi
je 0x10104abe
add ecx, 1
add edx, 0x14
cmp ecx, 0xa
jl 0x10104a75
movzx ecx, bl
mov dword [eax + ecx*4 + 0x1c], esi
add byte [eax + 0x13], 1
call fcn.100d63a0
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 0x10104aaf
lea eax, [ecx - 1]
mov edx, dword [edi]
cmp byte [edx + 0x45], 0
je 0x10104ac4
mov eax, 0x101725d8
jmp 0x10104acd
mov byte [edx + 6], 1
jmp 0x10104a90
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 0x10104ae7
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
call fcn.100d3fe0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret