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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x101e3070]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov esi, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x60], ecx
mov ecx, edi
mov eax, dword [edi + 8]
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x17], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], eax
call fcn.1004ea20
mov edx, dword [esp + 0x20]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x50]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x6c], eax
mov eax, dword [edx + 0x10]
mov ecx, dword [ecx + 0x40]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x48]
movlpd qword [esp + 0x18], xmm0
mov dword [esp + 0x10], 0
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
mov dword [esp + 0x34], eax
cmp esi, eax
mov eax, dword [esp + 0x1c]
jae 0x10082707
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], 1
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esi]
mov dword [esp + 0x18], ecx
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x10082556
test byte [esi + 0x14], 2
jne 0x10082556
test byte [ecx + 4], 1
jne 0x10082556
mov dword [esp + 0x88], eax
xorps xmm0, xmm0
mov eax, dword [esp + 0x20]
mov edx, ecx
movaps xmmword [esp + 0x70], xmm0
lea ecx, [esp + 0x70]
movq qword [esp + 0x80], xmm0
mov byte [esp + 0x84], 3
mov eax, dword [eax + 0x30]
mov dword [esp + 0x74], 0x1004e550
mov dword [esp + 0x78], 0x1004e660
mov dword [esp + 0x88], eax
call fcn.1004a820
cmp byte [esp + 0x84], 0
je 0x10082556
mov edx, dword [esp + 0x18]
mov ecx, dword [edi]
push 0
push 0
call fcn.1004d710
mov edx, dword [esp + 0x60]
mov ecx, dword [edi]
push eax
call fcn.1004d130
add esp, 0xc
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 8]
cmp eax, dword [edx + 0x30]
jne 0x100826de
test byte [esi + 0x12], 0x82
je 0x100826de
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x100826de
mov ecx, dword [esi + 0xc]
test ecx, ecx
js 0x100826de
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 4]
mov dl, byte [eax + ecx*8 + 0x15]
mov ecx, dword [esi]
call fcn.1004cad0
test eax, eax
je 0x100826e8
mov eax, dword [esi + 0xc]
cmp eax, 0x40
jl 0x100825c5
mov dword [esp + 0x28], 0
mov dword [esp + 0x38], SysStringLen
jmp 0x100825e2
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov dword [esp + 0x28], ecx
cmovae edx, ecx
mov dword [esp + 0x38], edx
cmp byte [esp + 0x17], 0
jne 0x1008260f
mov edx, dword [esp + 0x5c]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
push dword [eax + ecx*8]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.1001dd80
add esp, 0x10
mov byte [esp + 0x17], 1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
and ecx, dword [esp + 0x4c]
and eax, dword [esp + 0x2c]
or ecx, eax
jne 0x100826e8
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ecx, dword [edi]
mov dword [esp + 0x18], ecx
movzx eax, word [eax + 0x2c]
cmp eax, edx
jge 0x100826a9
lea eax, [edx + 7]
and eax, 0xfffffff8
mov dword [esp + 0x54], eax
shl eax, 2
push 0
push eax
call fcn.1001bee0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x100830cf
mov edx, dword [esp + 0x24]
movzx ecx, word [edx + 0x2c]
shl ecx, 2
push ecx
push dword [edx + 0x30]
push eax
call fcn.101544a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, dword [ecx + 0x30]
lea eax, [ecx + 0x38]
cmp edx, eax
je 0x10082694
mov ecx, dword [esp + 0x18]
call fcn.1001bca0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x54]
mov word [ecx + 0x2c], ax
jmp 0x100826ad
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
inc edx
mov eax, dword [ecx + 0x30]
inc dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov dword [eax + edi*4], esi
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
or eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
jmp 0x100826f0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
jmp 0x100826f4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
add esi, 0x30
cmp esi, dword [esp + 0x34]
jb 0x100824c0
mov esi, dword [esp + 0x4c]
jmp 0x1008270b
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
not eax
or eax, 0x80000000
mov word [ecx + 0x28], di
mov word [ecx + 0x18], di
not esi
mov edi, dword [esp + 0x44]
mov dword [ecx + 0x24], 0x4241
and eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x40]
and esi, ecx
mov dword [esp + 0x2c], eax
mov edx, 0x3f
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], esi
movzx eax, word [eax + 0x22]
mov dword [esp + 0x18], eax
cmp dx, ax
jge 0x1008275d
mov dword [esp + 0x28], edx
xor esi, esi
jmp 0x1008276a
movsx edx, ax
xor esi, esi
mov dword [esp + 0x28], edx
test edx, edx
jle 0x100827a8
mov edi, dword [esp + 0x28]
nop
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x4c]
and ecx, dword [esp + 0x2c]
or edx, ecx
je 0x10082797
inc dword [esp + 0x10]
inc esi
cmp esi, edi
jl 0x10082770
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x44], 0
jg 0x100827c6
jl 0x100827b8
test ecx, ecx
jae 0x100827c6
mov ecx, dword [esp + 0x10]
cwde
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
inc eax
movzx eax, ax
mov dword [esp + 0x3c], eax
cwde
lea ecx, [eax*4 + 7]
lea eax, [eax + eax*4]
and ecx, 0xfffffff8
add eax, 9
mov dword [esp + 0x54], ecx
and eax, 0xfffffff8
add ecx, 0x40
add eax, ecx
mov ecx, dword [edi]
cdq
push edx
push eax
mov dword [esp + 0x20], eax
call fcn.1001bee0
mov esi, eax
add esp, 8
mov dword [esp + 0x40], esi
test esi, esi
je 0x100830cf
push dword [esp + 0x18]
push 0
push esi
call fcn.10154a20
mov eax, dword [esp + 0x48]
lea ecx, [esi + 0x40]
movsx edx, ax
add esp, 0xc
mov dword [esi + 0x20], ecx
xorps xmm0, xmm0
add ecx, dword [esp + 0x54]
mov dword [esi + 8], ecx
lea eax, [edx + 1]
movlpd qword [esp + 0x18], xmm0
lea eax, [ecx + eax*2]
mov dword [esi + 4], eax
lea eax, [eax + edx*2]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov word [esi + 0x34], ax
dec eax
mov word [esi + 0x32], ax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x1c], esi
mov eax, dword [esp + 0x5c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esi], str.auto_index
xor esi, esi
mov dword [esp + 0x30], esi
mov edx, dword [eax + 0x14]
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x34]
jae 0x100829ea
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
nop dword [eax]
mov eax, dword [edx + 8]
cmp eax, dword [ecx + 0x30]
jne 0x100829d5
test byte [edx + 0x12], 0x82
je 0x100829d5
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x100829d1
mov ecx, dword [edx + 0xc]
test ecx, ecx
js 0x100829d1
mov eax, dword [esp + 0x20]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + ecx*8 + 0x15]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
call fcn.1004cad0
mov edx, dword [esp + 0x38]
test eax, eax
je 0x100829d1
mov eax, dword [edx + 0xc]
cmp eax, 0x40
jl 0x10082911
xor eax, eax
mov dword [esp + 0x54], SysStringLen
jmp 0x10082936
mov dword [esp + 0x18], eax
xor ecx, ecx
mov edi, dword [esp + 0x18]
xor eax, eax
bts eax, edi
cmp edi, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edi, 0x40
mov edi, dword [esp + 0x44]
cmovae ecx, eax
mov dword [esp + 0x54], ecx
mov ecx, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
and ecx, dword [esp + 0x30]
and eax, dword [esp + 0x3c]
or ecx, eax
jne 0x100829d1
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
mov edx, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
or eax, dword [esp + 0x54]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
mov ax, word [eax + 0xc]
mov word [ecx + esi*2], ax
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x18], eax
test dword [edx + 4], 0x100
jne 0x100829b0
test eax, eax
je 0x100829a1
test dword [eax + 4], 0x100
je 0x100829a1
mov edx, eax
jmp 0x100829b0
mov ecx, edi
call fcn.1004c8a0
test eax, eax
jne 0x100829c0
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.1004c8a0
mov ecx, 0x101d0dd0
test eax, eax
je 0x100829c2
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov eax, dword [eax + 0x20]
mov dword [eax + esi*4], ecx
inc esi
mov ecx, dword [esp + 0x20]
add edx, 0x30
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x34]
jb 0x100828a0
mov dword [esp + 0x30], esi
cmp dword [esp + 0x28], 0
jle 0x10082a3b
xor edi, edi
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 + 0x4c]
and ecx, dword [esp + 0x2c]
or edx, ecx
je 0x10082a2c
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
mov word [eax + esi*2], di
mov eax, dword [ecx + 0x20]
mov dword [eax + esi*4], 0x101d0dd0
inc esi
inc edi
cmp edi, dword [esp + 0x28]
jl 0x100829f3
mov edi, dword [esp + 0x44]
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x44], 0
jg 0x10082a87
jl 0x10082a4d
cmp dword [eax + 0x40], 0
jae 0x10082a87
mov eax, dword [esp + 0x5c]
mov ecx, 0x3f
mov edx, dword [esp + 0x40]
cmp cx, word [eax + 0x22]
jge 0x10082a8b
mov edi, eax
mov eax, dword [edx + 4]
mov word [eax + esi*2], cx
inc ecx
mov eax, dword [edx + 0x20]
mov dword [eax + esi*4], 0x101d0dd0
inc esi
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x10082a62
mov edi, dword [esp + 0x44]
mov dword [esp + 0x30], esi
jmp 0x10082a8b
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 4]
or ecx, 0xffffffff
mov word [eax + esi*2], cx
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x50]
mov dword [eax + esi*4], 0x101d0dd0
mov eax, dword [edi + 0x44]
mov esi, dword [esp + 0x68]
mov dword [ecx + 8], eax
inc dword [edi + 0x44]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x10082ae3
mov eax, dword [esp + 0x10]
mov edx, 0x39
push 0
inc eax
mov ecx, esi
push eax
push dword [esp + 0x20]
call fcn.10038de0
mov edx, dword [esp + 0x4c]
add esp, 0xc
jmp 0x10082b23
mov edi, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x10]
inc esi
mov word [eax + ecx*4], 0x39
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x68]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 8]
mov ecx, edi
mov dword [esp + 0x34], eax
call fcn.1005cc90
mov edx, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
cmp byte [ecx + 0x41], 0
je 0x10082b4f
push edx
mov edx, 0xfffffffa
call fcn.100397d0
add esp, 4
jmp 0x10082b85
mov eax, dword [eax + 0x20]
dec eax
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x10082b7a
mov ecx, dword [esp + 0x34]
push 0xfffffffffffffffa
push edx
mov edx, eax
call fcn.100399e0
add esp, 8
jmp 0x10082b85
test edx, edx
je 0x10082b85
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xfa
mov edx, dword [esp + 0x50]
inc dword [edi + 0x68]
movzx eax, byte [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x48]
shl ecx, 4
mov eax, dword [eax]
mov eax, dword [eax + 4]
add eax, 8
add eax, ecx
mov dword [esp + 0x34], eax
test byte [eax + 0x28], 0x10
je 0x10082cc7
mov edx, dword [eax + 0x1c]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], ecx
cmp dword [eax + 0x54], ecx
jg 0x10082be7
push 0
push 0
push 0
mov edx, 0x17
mov ecx, esi
call fcn.10038de0
mov edx, dword [esp + 0x54]
add esp, 0xc
mov dword [esp + 0x60], eax
jmp 0x10082c1e
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
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 [esp + 0x34]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x10082c4c
push dword [esp + 0x18]
mov ecx, esi
push 0
push edx
mov edx, 0x11
call fcn.10038de0
add esp, 0xc
jmp 0x10082c7f
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov dword [esp + 0x10], edx
cmp dword [eax + 0x54], edx
jg 0x10082caf
mov edx, dword [esp + 0x48]
mov ecx, esi
push 0
push 0
push edx
mov edx, 0x14
call fcn.10038de0
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x10082d2e
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x48]
mov word [eax + ecx*4], 0x14
jmp 0x10082d0d
mov eax, dword [esi + 0x18]
mov ecx, dword [edx + 4]
mov edx, dword [esi + 0x20]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], edx
cmp dword [eax + 0x54], edx
jg 0x10082cf7
push 0
push 0
push ecx
mov edx, 0x6e
mov ecx, esi
call fcn.10038de0
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x10082d2e
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x6e
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
mov byte [eax + ecx*4 + 3], 0
cmp dword [esp + 0x58], 0
je 0x10082da2
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x18], ecx
mov edx, dword [ecx + 0x70]
mov dword [esp + 0x64], edx
lea eax, [edx + 1]
mov dword [ecx + 0x70], eax
lea eax, [edx - 1]
test edx, eax
jne 0x10082d72
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x74]
mov ecx, dword [ecx]
push 0
push eax
call fcn.1001c060
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, dword [esp + 0x64]
mov dword [ecx + 0x74], eax
mov eax, dword [ecx + 0x74]
test eax, eax
je 0x10082d80
mov dword [eax + edx*4], 0xffffffff
not edx
mov ecx, edi
push 0x10
mov dword [esp + 0x68], edx
push edx
mov edx, dword [esp + 0x60]
call fcn.10052060
mov eax, dword [esp + 0x2c]
add esp, 8
or dword [eax + 0x24], 0x20000
mov al, byte [edi + 0x13]
test al, al
jne 0x10082db1
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
jmp 0x10082dbd
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x18]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x40]
push 0
push 0
push 0
push 0
push eax
push dword [ecx + 4]
mov ecx, edi
mov dword [esp + 0x40], eax
call fcn.1005ebf0
mov ecx, dword [esi + 0x18]
add esp, 0x18
mov edx, dword [esi + 0x20]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
cmp dword [ecx + 0x54], edx
jg 0x10082e12
mov edx, dword [esp + 0x28]
mov ecx, esi
push 0
push edx
push eax
mov edx, 0x70
call fcn.10038de0
add esp, 0xc
jmp 0x10082e49
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x70
mov byte [eax + ecx*4 + 3], 0
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]
cmp byte [eax + 0x41], 0
jne 0x10082e5f
mov eax, dword [esi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov byte [eax + ecx*4 - 0x11], 0x10
cmp dword [esp + 0x58], 0
je 0x10082e89
mov edx, dword [esi + 0x18]
mov ecx, dword [edx + 0x74]
test ecx, ecx
je 0x10082e82
mov eax, dword [esp + 0x64]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
dec eax
mov dword [edx + 0x5c], eax
mov edx, dword [esp + 0x34]
test byte [edx + 0x28], 0x10
je 0x10082f54
mov ecx, dword [esp + 0x60]
test ecx, ecx
jns 0x10082ea3
mov ecx, dword [esi + 0x20]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x41], 0
je 0x10082eb2
mov ecx, 0x102004bc
jmp 0x10082ebb
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x48]
mov dword [ecx + 8], eax
mov ecx, esi
mov eax, dword [esp + 0x50]
push 1
push dword [edx + 0x20]
mov edx, dword [esp + 0x18]
push dword [eax + 4]
call fcn.10082360
mov eax, dword [esi + 0x18]
add esp, 0xc
mov ecx, dword [esi + 0x20]
cmp dword [eax + 0x54], ecx
jg 0x10082f13
push 0
push dword [esp + 0x14]
mov edx, 0xe
mov ecx, esi
push 0
call fcn.10038de0
mov eax, dword [esp + 0x40]
add esp, 0xc
mov edx, dword [esp + 0x10]
and dword [eax + 0x28], 0xffffffef
jmp 0x10082fca
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x34]
and dword [eax + 0x28], 0xffffffef
jmp 0x10082fca
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x20]
lea eax, [edx + 1]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x10082f94
push 0
push dword [esp + 0x64]
mov edx, 8
mov ecx, esi
push dword [esp + 0x20]
call fcn.10038de0
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10082fce
mov edi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], edi
lea edi, [edx + 1]
mov word [eax + ecx*4], 8
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x44]
mov eax, dword [esi]
cmp byte [eax + 0x41], 0
jne 0x10082fe4
mov eax, dword [esi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov byte [eax + ecx*4 - 0x11], 3
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
dec ecx
mov dword [eax + 0x5c], ecx
mov eax, dword [esi + 0x20]
mov dword [esp + 0x18], eax
test edx, edx
jns 0x10082ffc
lea edx, [eax - 1]
mov eax, dword [esi]
cmp byte [eax + 0x41], 0
je 0x1008300b
mov eax, 0x102004bc
jmp 0x10083014
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
test edx, edx
je 0x10083053
mov al, byte [edi + 0x13]
mov byte [esp + 0x17], al
cmp al, 8
jae 0x10083053
xor ecx, ecx
lea eax, [edi + 0x78]
cmp dword [eax + 0xc], edx
je 0x1008304f
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x10083033
movzx eax, byte [esp + 0x17]
mov dword [edi + eax*4 + 0x18], edx
inc byte [edi + 0x13]
jmp 0x10083053
mov byte [eax + 6], 1
dec dword [edi + 0x68]
lea ecx, [edi + 0x84]
mov esi, 0xa
mov edx, dword [ecx]
test edx, edx
je 0x10083090
mov eax, dword [ecx - 4]
cmp eax, dword [edi + 0x68]
jle 0x10083090
cmp byte [ecx - 6], 0
je 0x1008308a
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x10083086
movzx eax, al
mov dword [edi + eax*4 + 0x18], edx
inc byte [edi + 0x13]
mov byte [ecx - 6], 0
mov dword [ecx], 0
add ecx, 0x14
sub esi, 1
jne 0x10083061
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
dec ecx
mov dword [eax + 0x5c], ecx
mov ecx, dword [esi + 0x20]
test edx, edx
jns 0x100830b4
lea edx, [ecx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x41], 0
je 0x100830c3
mov eax, 0x102004bc
jmp 0x100830cc
mov eax, dword [esi + 4]
lea edx, [edx + edx*4]
lea eax, [eax + edx*4]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x58]
mov ecx, dword [edi]
call fcn.1004d5a0
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
xor ecx, esp
call fcn.100a66bf
mov esp, ebp
pop ebp
ret