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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
mov dword [esp + 0x60], edx
mov edi, dword [ebp + 8]
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [esp + 0x108], eax
mov dword [esp + 0xb8], 0
mov esi, dword [ecx]
cmp dword [ecx + 0x24], 0
jne 0x10059771
cmp byte [esi + 0x53], 0
jne 0x10059771
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 0x38], esi
jne 0x10058659
mov esi, edx
lea edi, [edx + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
push dword [edi]
push dword [esi + 0x10]
call fcn.100395c0
add esp, 8
mov dword [esp + 4], eax
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x10058633
mov ebx, dword [esp + 4]
mov dword [esi + 0x18], ebx
test ebx, ebx
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x38]
je 0x10059771
inc dword [ebx + 0x20]
mov eax, dword [esp + 0x60]
test byte [eax + 0x30], 2
jne 0x1005a2d0
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x1005a2ed
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x10]
add ecx, 0xc
xor esi, esi
dec esi
inc esi
lea edx, [ecx + 0x10]
cmp dword [ecx], eax
mov ecx, edx
jne 0x100584b4
mov dword [esp + 0x70], esi
lea eax, [esp + 0xbc]
mov esi, dword [esp + 8]
mov ecx, esi
mov ebx, dword [esp + 4]
mov edx, ebx
push eax
push edi
push 0x80
call fcn.100524a0
add esp, 0xc
mov dword [esp + 0x74], eax
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x60]
cmp dword [eax], 2
jge 0x1005a2f7
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x7c], eax
mov ecx, esi
mov edx, ebx
call fcn.10052b40
test eax, eax
mov esi, dword [esp + 0x38]
jne 0x10059771
mov ecx, dword [esp + 8]
mov edx, ebx
push dword [esp + 0xbc]
call fcn.10052400
add esp, 4
test eax, eax
jne 0x10059771
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x20], eax
inc eax
mov dword [esp + 0x8c], eax
mov dword [ecx + 0x28], eax
xor edx, edx
cmp byte [ebx + 0x24], 0
mov eax, dword [ebx + 8]
mov dword [esp + 0x34], 0
js 0x10058671
test eax, eax
je 0x10058609
mov ebx, dword [esp + 0x20]
lea ecx, [ebx + 2]
xor edx, edx
mov esi, dword [esp + 8]
mov edi, edx
lea edx, [ecx - 1]
cmp dword [esp + 0x34], eax
cmove ebx, edx
mov edx, edi
mov dword [esi + 0x28], ecx
inc edx
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x10058578
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 4]
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x38]
cmp dword [ebp + 0x14], 0
jne 0x10059b32
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x34], eax
movsx eax, word [ebx + 0x2a]
add eax, edx
mov dword [esp + 0xa8], edx
lea edx, [edx + eax*4]
add edx, 6
movzx eax, word [esi + 0x11c]
cmp edx, eax
ja 0x10058613
cmp edx, 0x80
ja 0x100586ab
mov eax, dword [esi + 0x140]
test eax, eax
je 0x1005869d
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov dword [esi + 0x140], eax
inc dword [esi + 0x128]
mov ebx, dword [esp + 4]
jmp 0x100586e9
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jmp 0x100585a1
cmp dword [esi + 0x118], 0
je 0x10059efd
cmp byte [esi + 0x53], 0
mov ebx, dword [esp + 4]
je 0x100586d1
jmp 0x10059771
mov eax, dword [esp + 8]
mov ecx, dword [eax]
test ecx, ecx
je 0x10058646
cmp dword [ecx + 0x1f8], 0
jne 0x1005864f
dec dword [edx + 0x20]
jne 0x10058473
call fcn.10021c30
jmp 0x10058473
mov ecx, dword [esi + 0x10]
add ecx, 0xfffffff0
mov esi, edx
lea edi, [ecx + 0x10]
cmp dword [ecx + 0x1c], eax
mov ecx, edi
je 0x10058451
jmp 0x10058661
test eax, eax
je 0x1005a8f1
mov ecx, eax
mov ebx, dword [esp + 4]
mov edx, dword [ecx + 0x38]
and edx, 3
cmp edx, 2
jne 0x1005a908
mov dword [esp + 0x34], ecx
mov ebx, dword [esp + 4]
xor edx, edx
jmp 0x10058563
mov eax, dword [esi + 0x13c]
test eax, eax
jne 0x10059b21
mov eax, dword [esi + 0x138]
test eax, eax
jne 0x10059874
mov eax, dword [esi + 0x134]
test eax, eax
jne 0x10059eac
inc dword [esi + 0x130]
mov ebx, dword [esp + 4]
mov ecx, esi
push 0
call fcn.10143c10
add esp, 4
test eax, eax
je 0x10059771
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xa8]
movsx eax, word [ebx + 0x2a]
mov ebx, dword [esp + 0x24]
lea eax, [ebx + eax*4]
lea esi, [eax + ecx*4]
mov dword [esp + 0x84], eax
lea eax, [eax + ecx*4 + 4]
lea edx, [ecx + 1]
mov dword [esp + 0x50], edx
push edx
push 1
mov dword [esp + 0x70], eax
push eax
mov edi, ecx
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x10]
add esp, 0xc
mov byte [edi + esi + 5], 0
cmp word [edx + 0x2a], 0
jle 0x10058744
xor eax, eax
mov dword [ebx + eax*4], 0xffffffff
inc eax
movsx ecx, word [edx + 0x2a]
cmp eax, ecx
jl 0x10058734
xorps xmm0, xmm0
movups xmmword [esp + 0xcc], xmm0
mov dword [esp + 0xdc], 0
mov ecx, dword [esp + 8]
mov dword [esp + 0xc0], ecx
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd8], 0x200
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
test eax, eax
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x38]
je 0x1005921f
cmp dword [edi], 0
jle 0x1005924f
mov dword [esp + 0x10], 0
xor eax, eax
dec eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x5c], 0
cmp dword [esp + 0x28], 0
jne 0x100587fb
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*4 + 8]
lea ecx, [esp + 0xc0]
call fcn.10005000
mov edx, dword [esp + 4]
test eax, eax
jne 0x10059764
movzx eax, word [edx + 0x2a]
test ax, ax
jle 0x10059fe8
mov word [esp + 0x18], ax
movzx eax, ax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov dword [esp + 0x80], eax
mov esi, dword [edi + eax*4 + 0xc]
mov eax, dword [edx + 4]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x3c], eax
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4]
xor edx, edx
movzx ebx, byte [ecx + edx]
movzx eax, byte [esi + edx]
cmp bl, al
jne 0x10058852
test bl, bl
je 0x10058870
inc edx
jmp 0x1005883f
mov bl, byte [ebx + 0x1019c728]
cmp bl, byte [eax + 0x1019c728]
je 0x1005884f
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, dword [esp + 0x2c]
jne 0x1005882f
jmp 0x10059fc2
mov edx, dword [esp + 4]
movsx eax, word [edx + 0x28]
cmp dword [esp + 0x3c], eax
mov esi, dword [esp + 0x34]
je 0x10059fef
mov eax, dword [esp + 0x14]
movzx eax, word [eax + edi*4 + 0x10]
test esi, esi
mov ebx, dword [esp + 0x24]
je 0x100588a9
mov edx, eax
and edx, 1
test dx, dx
mov edx, dword [esp + 4]
jne 0x1005a1e2
test al, 0x60
mov edi, dword [ebp + 8]
jne 0x1005a14f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov dword [ebx + ecx*4], eax
movzx eax, word [edx + 0x2a]
mov esi, dword [esp + 8]
cwde
cmp ecx, eax
jge 0x1005a01e
mov eax, dword [edx + 4]
mov dword [esp + 0x3c], ecx
lea ecx, [ecx + ecx*4]
mov ebx, dword [eax + ecx*4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x150]
test ecx, ecx
jne 0x1005a07b
mov ecx, dword [esp + 0x10]
inc ecx
mov eax, ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [edi]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
jl 0x100587d1
mov dword [esp + 0x24], ebx
test byte [edx + 0x24], 0x60
jne 0x1005a302
mov eax, dword [esp + 0x6c]
mov ecx, eax
add cl, byte [esp + 0x5c]
xor edi, edi
cmp edi, dword [edx + 0x38]
sbb eax, eax
mov esi, dword [esp + 0x60]
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov eax, dword [esp + 8]
mov eax, dword [eax]
test byte [eax + 0x21], 0x40
mov byte [esp + 0x3c], cl
jne 0x100590c3
mov dword [esp + 0x2c], 0
xor esi, esi
mov dword [esp + 0x14], 0
cmp dword [ebp + 0x10], 5
je 0x1005a3c4
mov edi, dword [edx + 8]
test edi, edi
je 0x100590ba
cmp byte [esp + 0x3c], 0
setne al
cmp dword [esp + 0x2c], 1
setg cl
or cl, al
mov byte [esp + 0x18], cl
xor ecx, ecx
cmp edi, dword [esp + 0x34]
sete al
or al, byte [esp + 0x18]
jne 0x10058a0f
mov edx, dword [edi + 0x24]
test edx, edx
jne 0x1005a284
cmp word [edi + 0x32], 0
je 0x100589e2
xor ebx, ebx
mov esi, 4
mov dword [esp + 0x10], ecx
mov eax, dword [edi + 4]
movzx eax, word [eax + ebx*2]
test ax, ax
js 0x1005a218
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + eax*4]
not eax
shr eax, 0x1f
test eax, eax
mov ecx, dword [esp + 0x10]
jne 0x10059895
inc ebx
movzx eax, word [edi + 0x32]
add esi, 0xa
cmp ebx, eax
jb 0x100589ae
mov edx, dword [esp + 4]
lea esi, [ecx + 1]
mov eax, dword [esp + 0x68]
mov byte [eax + ecx + 1], 0
xor ebx, ebx
mov eax, ecx
mov ecx, dword [esp + 0x84]
mov dword [ecx + eax*4], ebx
mov edi, dword [edi + 0x14]
mov ecx, esi
test edi, edi
jne 0x10058984
jmp 0x10058a3b
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x2c]
lea ebx, [ecx + 1]
mov dword [esi + 0x2c], ebx
movzx edx, word [edi + 0x34]
add ecx, edx
inc ecx
mov dword [esi + 0x2c], ecx
mov edx, dword [esp + 4]
test ebx, ebx
mov ecx, dword [esp + 0x10]
je 0x100589e6
lea esi, [ecx + 1]
jmp 0x100589f4
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xb8], ebx
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x2c]
inc eax
mov dword [edi + 0x2c], eax
mov ecx, dword [esp + 0x84]
mov dword [ecx + esi*4], eax
test ebx, ebx
jne 0x1005a3db
mov dword [esp + 0x14], ebx
mov dword [esp + 0xb0], esi
cmp byte [edi + 0x12], 0
jne 0x10058a7f
mov eax, dword [esp + 0xc]
or byte [eax + 0x98], 0x10
mov eax, dword [esp + 0x74]
or eax, dword [esp + 0x2c]
setne bl
mov esi, dword [edi + 0x74]
test esi, esi
cmove esi, edi
mov eax, dword [esi + 0x54]
xor edi, edi
inc edi
mov dword [esp + 0x80], edi
mov ecx, dword [esp + 0x70]
shl edi, cl
bt eax, ecx
jb 0x10058ab8
or eax, edi
mov dword [esi + 0x54], eax
cmp ecx, 1
je 0x10059885
or dword [esi + 0x50], edi
or byte [esi + 0x14], bl
cmp dword [edx + 0x38], 0
jne 0x1005a3f6
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x2c]
lea edi, [ecx + 1]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0xb0]
mov esi, dword [esi + ebx*4]
mov dword [esp + 0x54], esi
mov dword [esp + 0x18], edi
mov dword [eax + 0x2c], edi
cmp dword [esp + 0x74], 0
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 8]
jne 0x10059927
cmp byte [esp + 0x5c], 0
jne 0x10059927
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x2c], 0
jne 0x10059927
cmp dword [esp + 0x74], 0
jne 0x10059949
cmp byte [esp + 0x3c], 0
jne 0x10059949
cmp dword [esp + 0x2c], 0
jne 0x10059949
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 8]
lea ecx, [eax + 1]
mov dword [esp + 0x88], ecx
movsx ecx, word [edx + 0x2a]
add ecx, eax
mov dword [ebx + 0x2c], ecx
cmp dword [esp + 0x7c], 0
mov edx, dword [ebp + 0xc]
jne 0x1005a434
mov dword [esp + 0xa4], 0
cmp dword [esp + 0x28], 0
jne 0x1005a487
mov dword [esp + 0x98], 0
lea ecx, [esp + 0xc0]
call fcn.10005000
mov cl, 1
mov dword [esp + 0x70], ecx
test eax, eax
jne 0x10059751
mov edx, dword [esp + 4]
cmp dword [edx + 0x38], 0
jne 0x1005a49f
mov eax, dword [ebx + 0x38]
mov dword [esp + 0xb4], eax
dec eax
mov dword [esp + 0x58], eax
mov dword [ebx + 0x38], eax
mov dword [esp + 0xac], 0
test byte [esi + 0x24], 1
jne 0x1005a4c7
cmp byte [esp + 0x70], 0
je 0x100592d2
cmp byte [edx + 0x24], 0
js 0x100592d2
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10059ac1
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov edi, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [edi + eax*4], 0x48
mov esi, ecx
xor edx, edx
mov dword [edi + eax*4 + 4], edx
mov ecx, dword [esp + 0x54]
mov dword [edi + eax*4 + 8], ecx
mov ecx, dword [esp + 0x18]
mov dword [edi + eax*4 + 0xc], ecx
mov dword [edi + eax*4 + 0x10], edx
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x28]
lea eax, [edx + 1]
mov dword [ecx + 0x28], eax
mov ebx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebx
mov ecx, esi
jle 0x10059adf
lea eax, [ebx + 1]
mov dword [ecx + 0x6c], eax
mov eax, dword [ecx + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4], 0x70
mov dword [eax + ecx*4 + 4], edx
xor esi, esi
mov dword [eax + ecx*4 + 8], esi
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4 + 0xc], edi
mov dword [esp + 0x4c], 0
mov dword [eax + ecx*4 + 0x10], esi
xor eax, eax
mov dword [esp + 0x48], 0
cmp dword [esp + 0x28], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], eax
jne 0x1005a67b
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x44], ebx
jne 0x10059dba
xor eax, eax
mov edi, dword [esp + 8]
cmp byte [edi + 0x12], 0
sete al
shl eax, 3
mov ecx, 4
or eax, ecx
mov edx, dword [esp + 0x74]
or edx, dword [esp + 0x2c]
cmovne eax, ecx
cmp byte [esp + 0x3c], 0
cmovne eax, ecx
mov edx, edi
xor edi, edi
cmp dword [esp + 0x14], 0
cmovne eax, ecx
mov ecx, edx
mov edx, dword [esp + 0x60]
push dword [esp + 0x8c]
push eax
push edi
push edi
push dword [ebp + 0xc]
call fcn.1003ef90
add esp, 0x14
test eax, eax
je 0x1005a6b4
mov edi, eax
mov eax, dword [eax + 0x14]
mov dword [esp + 0x64], eax
mov ecx, dword [edi + 0x18]
movzx ebx, byte [edi + 0x2e]
mov eax, dword [edi + 0x30]
and eax, 1
mov dword [esp + 0x80], eax
cmp ebx, 1
mov edx, dword [esp + 0xc]
jne 0x10059279
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x1c]
mov ebx, ecx
mov eax, dword [esp + 4]
cmp byte [eax + 0x24], 0
mov dword [esp + 0xa0], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], ebx
js 0x1005941d
mov eax, dword [edx + 0x6c]
cmp dword [edx + 0x70], eax
jle 0x10059b06
lea ecx, [eax + 1]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x83
mov dword [ecx + eax*4 + 4], esi
mov edx, dword [esp + 0x18]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov edx, dword [esp + 0x10]
test edx, edx
je 0x10059c67
cmp dword [esp + 0x44], 0
mov eax, dword [esp + 0xc]
je 0x1005a6c0
mov ecx, dword [eax]
cmp byte [ecx + 0x53], 0
jne 0x10058ddc
mov edi, dword [eax + 0x68]
mov eax, dword [esp + 0x44]
lea esi, [eax + eax*4]
movsx edx, byte [edi + esi*4 + 1]
push dword [edi + esi*4 + 0x10]
call fcn.10006530
add esp, 4
mov dword [edi + esi*4 + 0x10], 0
mov word [edi + esi*4], 0xb1
mov dword [esp + 0x28], 0
xor ebx, ebx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x44], 0
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x40], ebx
jne 0x10059b56
cmp edx, 2
sete al
mov ecx, dword [esp + 0x70]
xor cl, 1
or cl, al
mov edi, dword [esp + 8]
jne 0x10058e2d
mov ecx, dword [esp + 0xa0]
call fcn.100370c0
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x7c], 0
jne 0x10058e81
test edx, edx
mov edx, dword [esp + 4]
je 0x10058e64
test esi, esi
js 0x10058e4e
mov eax, esi
sub eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x68]
mov byte [ecx + eax], 0
cmp dword [esp + 0x14], 0
jns 0x100594bf
cmp dword [esp + 0x10], 2
je 0x100594e0
xor eax, eax
mov ecx, edi
push eax
push eax
push dword [esp + 0x70]
push dword [esp + 0x2c]
push eax
push 0x63
call fcn.100528a0
add esp, 0x18
mov edx, dword [esp + 0x10]
test edx, edx
mov ecx, dword [esp + 0xc]
je 0x10059b79
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x14], eax
je 0x10058e9f
cmp esi, eax
jne 0x1005a7e5
mov eax, dword [esp + 0x58]
cmp edx, 1
jne 0x100594d4
mov dword [esp + 0x20], eax
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x48]
cmove eax, dword [esp + 0x18]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
mov ebx, dword [esp + 0x2c]
jle 0x1005990e
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x32
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [esp + 0x58]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [esp + 0x44], 0
mov dword [edx + ecx*4 + 0x10], eax
cmp byte [esp + 0x6c], 0
jne 0x1005a4e1
cmp dword [esp + 0x74], 0
jne 0x1005995a
cmp byte [esp + 0x5c], 0
jne 0x1005995a
test ebx, ebx
jne 0x1005995a
xor eax, eax
inc eax
mov ecx, edi
mov edx, dword [esp + 0x74]
push dword [ebp + 0x10]
mov esi, dword [esp + 8]
push esi
push eax
push eax
push dword [ebp + 8]
call fcn.1005ac90
add esp, 0x14
mov ecx, esi
movzx edx, word [esi + 0x2a]
test dx, dx
jle 0x1005959a
mov dword [esp + 0x5c], eax
mov esi, 4
xor edi, edi
mov ebx, dword [esp + 0x88]
mov eax, ecx
movsx ecx, word [eax + 0x28]
cmp edi, ecx
je 0x10059078
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], esi
movzx ecx, word [ecx + esi*4]
test cl, 0x60
jne 0x10059fdb
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + edi*4]
test esi, esi
js 0x10058fde
cmp byte [esp + 0x28], 0
jne 0x1005a127
mov edx, dword [esp + 8]
cmp dword [edx + 8], 0
je 0x10058fc4
lea eax, [esi + esi*4]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + eax*4 + 8]
mov ecx, edx
mov edx, esi
push ebx
call fcn.1003b930
add esp, 4
cmp eax, ebx
jne 0x1005901a
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x14]
inc edi
inc ebx
movsx edx, word [eax + 0x2a]
add esi, 5
cmp edi, edx
jl 0x10058f69
jmp 0x1005959c
cmp edi, 0x1f
mov ecx, dword [esp + 0xc]
ja 0x10058ff7
mov eax, dword [esp + 0xbc]
and eax, 1
jne 0x1005a1f0
mov edx, dword [esp + 4]
push ebx
push edi
push dword [esp + 0x24]
call fcn.1003db30
mov eax, dword [esp + 0x10]
add esp, 0xc
mov dword [esp + 0x80], 0
jmp 0x10058fc8
mov cl, byte [esi + 6]
and cl, 0x20
cmp cl, 1
mov ecx, 0x4d
adc ecx, 0
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x10059e7c
lea esi, [edx + 1]
mov dword [ecx + 0x6c], esi
mov esi, dword [ecx + 0x68]
lea edx, [edx + edx*4]
mov ecx, dword [esp + 0x68]
mov byte [esi + edx*4], cl
mov word [esi + edx*4 + 2], 0
mov dword [esi + edx*4 + 4], eax
mov dword [esi + edx*4 + 8], ebx
xor eax, eax
mov dword [esi + edx*4 + 0xc], eax
mov dword [esi + edx*4 + 0x10], eax
mov byte [esi + edx*4 + 1], 0
jmp 0x10058fc4
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10059e91
mov edx, esi
lea esi, [eax + 1]
mov dword [ecx + 0x6c], esi
mov esi, edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x48
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [esp + 4]
jmp 0x10058fcc
mov ebx, dword [esp + 0x14]
jmp 0x10058a46
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x100597e9
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edi
mov eax, dword [edx]
mov ecx, dword [edx + 0x48]
mov edi, dword [ecx + 0x44]
test edi, edi
mov dword [esp + 0x14], eax
jne 0x100598cf
lea esi, [ecx + 0x40]
add ecx, 0x3c
mov edx, dword [ecx]
mov ecx, 0x101dded0
test edx, edx
je 0x1005913c
mov esi, dword [esi]
dec edx
mov edi, dword [esi + 0xc]
xor ebx, ebx
movzx ecx, byte [edi + ebx]
movzx eax, byte [eax + ebx]
cmp cl, al
jne 0x10059121
test cl, cl
je 0x10059593
inc ebx
mov eax, dword [esp + 0x14]
jmp 0x10059106
mov cl, byte [ecx + 0x1019c728]
cmp cl, byte [eax + 0x1019c728]
je 0x1005911a
test edx, edx
mov eax, dword [esp + 0x14]
jne 0x100590fe
mov ecx, 0x101dded0
mov eax, dword [ecx + 8]
test eax, eax
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x10]
je 0x10059212
mov ebx, dword [eax + 0x14]
test ebx, ebx
jle 0x10059207
mov dword [esp + 0x10], ecx
movsx esi, word [edx + 0x2a]
xor edi, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x80], ebx
test si, si
jle 0x100591f3
mov ecx, dword [eax + edi*8 + 0x28]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov ebx, dword [esp + 0x24]
cmp dword [ebx + ecx*4], 0
jns 0x100591a6
cmp byte [esp + 0x3c], 0
je 0x1005919f
mov edx, dword [esp + 4]
movsx edx, word [edx + 0x28]
cmp ecx, edx
mov edx, dword [esp + 4]
je 0x100591a6
inc ecx
cmp ecx, esi
jne 0x1005917e
jmp 0x100591f3
mov edx, dword [edx + 4]
cmp dword [esp + 0x14], 0
je 0x10059e65
lea ebx, [ecx + ecx*4]
mov edx, dword [edx + ebx*4]
xor eax, eax
mov dword [esp + 0x58], edx
movzx edx, byte [edx + eax]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
movzx ebx, byte [ebx + eax]
cmp dl, bl
je 0x1005a750
mov dl, byte [edx + 0x1019c728]
cmp dl, byte [ebx + 0x1019c728]
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x18]
jne 0x1005919f
jmp 0x1005a758
inc edi
mov ebx, dword [esp + 0x80]
cmp edi, ebx
jne 0x1005916f
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x1005914f
test ecx, ecx
jne 0x1005894d
jmp 0x10058945
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x74], 0
jne 0x10059235
mov eax, dword [ecx]
test byte [eax + 0x4c], 8
jne 0x10059235
mov byte [ecx + 0x17], 1
call fcn.10035540
mov dword [esp + 0xc], eax
test eax, eax
mov edx, dword [esp + 4]
jne 0x1005879b
jmp 0x10059764
xor eax, eax
dec eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x90], 0
jmp 0x10058908
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x74]
test eax, eax
cmove eax, esi
mov byte [eax + 0x14], 1
cmp bl, 2
mov esi, dword [esp + 0x1c]
jne 0x100592c9
mov dword [esp + 0x10], 2
mov ebx, ecx
test ecx, ecx
js 0x10058d3e
cmp esi, ebx
je 0x10058d3e
mov eax, ebx
sub eax, dword [esp + 0x20]
xor ebx, ebx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x68]
cmp byte [esi + eax], 0
mov esi, dword [esp + 0x1c]
sete bl
add ebx, ebx
mov dword [esp + 0x10], ebx
jmp 0x10058d3c
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1005a925
movzx eax, word [eax + 0x32]
mov dword [esp + 0x78], eax
mov ecx, dword [ebx + 0x2c]
lea eax, [ecx + 1]
mov dword [esp + 0x4c], eax
movsx eax, word [esp + 0x78]
mov dword [esp + 0x40], eax
add ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
add eax, ecx
inc eax
mov dword [esp + 0x48], eax
mov dword [ebx + 0x2c], eax
cmp dword [ebp + 0x14], 0
jne 0x10059d33
xor ebx, ebx
cmp dword [esp + 0x7c], 0
jne 0x1005a9bb
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x28]
lea ecx, [edx + 1]
mov dword [eax + 0x28], ecx
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x28]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0xc]
mov dword [esp + 0x30], edx
je 0x1005938c
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10059edf
lea edx, [eax + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [eax + eax*4]
mov dword [edx + ecx*4], 0x48
xor edi, edi
mov dword [edx + ecx*4 + 4], edi
mov eax, dword [esp + 0x4c]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esp + 0x10]
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], edi
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x30]
add dword [esp + 0x40], ebx
mov ebx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebx
jle 0x10059ebd
lea eax, [ebx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4], 0x70
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
mov esi, edx
mov dword [eax + ecx*4 + 8], edx
xor edx, edx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [esp + 0x34], 0
je 0x10059405
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x34]
call fcn.10044850
test eax, eax
je 0x10059405
mov word [eax + 8], si
mov edx, dword [esp + 0xc]
mov ecx, dword [edx]
cmp byte [ecx + 0x53], 0
jne 0x1005a9c4
mov ecx, dword [edx + 0x68]
mov edx, dword [edx + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf7
mov dword [ecx + edx*4 - 4], eax
cmp byte [esp + 0x70], 0
je 0x1005a9e8
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
jmp 0x10058c8d
movsx ebx, word [esp + 0x78]
test bx, bx
jle 0x1005945f
xor edi, edi
mov eax, dword [esp + 0x4c]
add eax, edi
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
mov eax, ebx
movsx ebx, word [ecx + edi*2]
mov ecx, edx
mov edx, dword [esp + 4]
push dword [esp + 0x28]
push ebx
mov ebx, eax
push esi
call fcn.1003db30
mov edx, dword [esp + 0x18]
add esp, 0xc
inc edi
cmp ebx, edi
jne 0x10059429
cmp dword [esp + 0x10], 0
je 0x1005a932
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x64]
je 0x10059d85
mov ecx, dword [edx]
cmp byte [ecx + 0x53], 0
jne 0x100594aa
mov edi, dword [edx + 0x68]
mov eax, dword [esp + 0x44]
lea esi, [eax + eax*4]
movsx edx, byte [edi + esi*4 + 1]
push dword [edi + esi*4 + 0x10]
call fcn.10006530
add esp, 4
mov dword [edi + esi*4 + 0x10], 0
mov word [edi + esi*4], 0xb1
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
jmp 0x10058de6
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x68]
mov byte [ecx + eax], 0
jmp 0x10058e59
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
jmp 0x10058eac
mov eax, dword [esp + 0x14]
sar eax, 0x1f
not eax
mov ecx, dword [esp + 0xa8]
add ecx, eax
test ecx, ecx
jle 0x10058e64
xor edi, edi
mov ebx, dword [esp + 0xc]
mov ecx, ebx
mov edx, 0x11
push edi
push edi
push edi
call fcn.10036aa0
add esp, 0xc
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push edi
push edi
push dword [esp + 0x70]
push dword [esp + 0x2c]
push edi
mov edi, dword [esp + 0x1c]
push 0x63
call fcn.100528a0
mov ecx, ebx
mov ebx, dword [esp + 0x58]
add esp, 0x18
mov edx, dword [esp + 0x54]
mov eax, edx
test edx, edx
mov edx, dword [esp + 0x10]
je 0x10058e8d
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x20], edx
lea ebx, [edx - 1]
cmp ebx, eax
je 0x1005ac35
mov edx, dword [ecx]
cmp byte [edx + 0x53], 0
jne 0x1005ac41
mov edx, dword [esp + 0x54]
test edx, edx
cmovns ebx, edx
lea edx, [ebx + ebx*4]
shl edx, 2
add edx, dword [ecx + 0x68]
mov eax, dword [esp + 0x20]
mov dword [edx + 8], eax
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x40]
jmp 0x10058e8d
mov ecx, esi
jmp 0x1005913c
mov eax, ecx
test byte [eax + 0x24], 0x60
jne 0x1005a508
test byte [esp + 0xbc], 1
mov bl, byte [esp + 0x3c]
jne 0x1005a528
cmp dword [esp + 0x7c], 0
mov edi, dword [esp + 8]
jne 0x100596be
mov edx, eax
movzx esi, bl
lea eax, [esp + 0xb8]
mov ecx, edi
mov ebx, dword [ebp + 0x10]
movzx edi, bl
mov bl, byte [esp + 0x3c]
push 0
push dword [esp + 0x28]
push eax
push dword [esp + 0x2c]
push edi
push esi
push dword [esp + 0x30]
push dword [esp + 0x6c]
push dword [esp + 0xac]
push dword [esp + 0x40]
push dword [esp + 0xac]
call fcn.10053b20
add esp, 0x2c
test bl, bl
jne 0x1005a16a
cmp dword [esp + 0xb8], 0
jne 0x1005a16a
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 8]
jne 0x10059dc0
mov ecx, edi
mov edx, dword [esp + 4]
push 0xffffffffffffffff
push dword [esp + 0x88]
push dword [esp + 0x94]
push dword [esp + 0x28]
call fcn.1005ae00
add esp, 0x10
cmp dword [esp + 0x80], 0
jne 0x1005a5c7
test bl, bl
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
jne 0x1005a1c0
cmp edi, 2
jge 0x1005a1c0
test edi, edi
mov edi, dword [esp + 8]
jne 0x10059dde
xor eax, eax
cmp edx, 2
sete al
add eax, eax
add eax, 4
xor esi, esi
mov ecx, edi
mov edx, dword [esp + 4]
push esi
push esi
push eax
push dword [esp + 0x90]
push dword [esp + 0x60]
push dword [esp + 0xa0]
push dword [esp + 0x34]
call fcn.10052e20
add esp, 0x1c
mov ebx, dword [esp + 0xac]
test ebx, ebx
jne 0x1005a5e5
mov ecx, edi
mov edx, dword [esp + 0x74]
push dword [esp + 0x20]
push dword [ebp + 0x10]
push dword [esp + 0x20]
push dword [esp + 0x10]
push 2
push dword [ebp + 8]
push 0x80
call fcn.1005afa0
add esp, 0x1c
mov eax, dword [esp + 0x10]
cmp eax, 1
jne 0x100597ad
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0xc]
mov esi, dword [esp + 0xb4]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1005a600
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
cmp byte [edi + 0x12], 0
mov esi, dword [esp + 0x38]
jne 0x10059746
cmp dword [ebp + 0x14], 0
jne 0x10059746
cmp dword [edi + 0x78], 0
jne 0x10059746
cmp dword [edi + 0x70], 0
jne 0x1005a8d0
test ebx, ebx
jne 0x1005a616
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0xa4]
test ecx, ecx
mov ebx, dword [esp + 0x24]
jne 0x1005a669
test ebx, ebx
je 0x10059771
mov edx, ebx
mov ecx, esi
call fcn.10139000
mov ecx, esi
mov edx, dword [esp + 0x60]
call fcn.10008530
test edi, edi
je 0x10059789
mov ecx, esi
mov edx, edi
call fcn.100084e0
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x10059797
mov ecx, esi
call fcn.10139110
mov ecx, dword [esp + 0x108]
xor ecx, ebp
call fcn.1014dc80
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp eax, 2
mov edx, dword [esp + 0xc]
jne 0x10059cd7
mov ecx, dword [edx + 0xc]
mov esi, dword [esp + 0x20]
not esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10059b6b
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0xa0]
call fcn.100370c0
jmp 0x10059701
xor ecx, ecx
inc ecx
xor edi, edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x10059835
mov dword [esp + 0x10], edi
xor esi, esi
mov edi, dword [eax + esi*8 + 0x24]
mov ebx, dword [esp + 0x24]
cmp dword [ebx + edi*4], 0
jns 0x10059d9e
cmp byte [esp + 0x3c], 0
je 0x1005982c
mov edx, dword [esp + 4]
movsx edx, word [edx + 0x28]
cmp edi, edx
mov edx, dword [esp + 4]
je 0x10059d9e
inc esi
cmp ecx, esi
jne 0x100597ff
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x100590d5
jmp 0x100597f2
movzx ebx, byte [esi + edi]
movzx edx, byte [ecx + edi]
cmp bl, dl
jne 0x1005985d
test bl, bl
mov edx, dword [esp + 4]
je 0x1005abc6
inc edi
jmp 0x10059842
mov bl, byte [ebx + 0x1019c728]
cmp bl, byte [edx + 0x1019c728]
mov edx, dword [esp + 4]
je 0x1005985a
xor edi, edi
inc edi
jmp 0x10059835
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov dword [esi + 0x138], eax
jmp 0x100585fa
mov ecx, esi
call fcn.10045bc0
mov edx, dword [esp + 4]
jmp 0x10058ab8
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x2c]
lea ebx, [ecx + 1]
mov dword [esi + 0x2c], ebx
movzx edx, word [edi + 0x34]
add ecx, edx
inc ecx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x10], 0xb
jne 0x10058a2a
cmp byte [edi + 0x36], 5
mov ecx, dword [esp + 0x14]
mov edx, 1
cmove ecx, edx
mov dword [esp + 0x14], ecx
jmp 0x10058a2a
mov bl, byte [eax]
test bl, bl
je 0x10059f08
lea edx, [eax + 1]
xor eax, eax
movzx esi, bl
movzx esi, byte [esi + 0x1019c728]
add esi, eax
imul eax, esi, 0x9e3779b1
mov bl, byte [edx]
inc edx
test bl, bl
jne 0x100598de
xor edx, edx
div dword [ecx + 0x38]
lea esi, [edi + edx*8]
add esi, 4
lea ecx, [edi + edx*8]
mov eax, dword [esp + 0x14]
jmp 0x100590f3
mov edx, 0x32
push 0
push dword [esp + 0x5c]
push eax
call fcn.10007820
add esp, 0xc
jmp 0x10058eff
add ecx, 2
movsx eax, word [edx + 0x2a]
add eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov dword [edx + 0x2c], eax
mov edx, dword [esp + 4]
mov dword [esp + 0x9c], ecx
jmp 0x10058b25
inc eax
mov ebx, dword [esp + 8]
mov dword [ebx + 0x2c], eax
mov dword [esp + 0x50], eax
jmp 0x10058b52
xor eax, eax
test ebx, ebx
jne 0x10059e55
mov ebx, eax
mov ecx, edi
mov edx, dword [esp + 0x74]
push dword [ebp + 0x10]
mov esi, dword [esp + 8]
push esi
push 3
push 0
push dword [ebp + 8]
call fcn.1005ac90
add esp, 0x14
cmp word [esi + 0x2a], 0
jle 0x10059a65
or eax, ebx
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x14], ecx
test di, di
js 0x100599b8
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x24]
and ecx, 0x20
jne 0x1005a886
mov ecx, edi
movsx esi, cx
add esi, dword [esp + 0x9c]
cmp eax, 0xffffffff
je 0x10059a37
lea ecx, [edi + edi*4]
mov edx, dword [esp + 0x14]
movzx ecx, word [edx + ecx*4 + 0x10]
cmp edi, 0x1f
ja 0x100599df
bt eax, edi
jb 0x10059a37
test cl, 1
jne 0x10059a37
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x6c]
cmp dword [edx + 0x70], eax
jle 0x10059a4f
lea ecx, [eax + 1]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x48
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], esi
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov ebx, dword [esp + 0x14]
inc edi
mov eax, dword [esp + 4]
movsx eax, word [eax + 0x2a]
add ebx, 0x14
cmp edi, eax
mov eax, dword [esp + 0x5c]
jl 0x10059998
jmp 0x10059a65
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
push esi
push edi
push dword [esp + 0x24]
call fcn.1003db30
add esp, 0xc
jmp 0x10059a1d
mov ecx, edx
mov edx, 0x48
xor eax, eax
push eax
push esi
push eax
call fcn.10007820
add esp, 0xc
jmp 0x10059a19
cmp dword [esp + 0x34], 0
mov edi, dword [esp + 8]
jne 0x10058f28
cmp byte [esp + 0x6c], 0
jne 0x10058f28
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10059f0f
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x4d
mov edx, dword [esp + 0x18]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10058f28
mov esi, ecx
mov edx, 0x48
push dword [esp + 0x18]
push dword [esp + 0x58]
push 0
call fcn.10007820
add esp, 0xc
jmp 0x10058c37
mov esi, edx
mov edx, 0x70
push dword [esp + 0x54]
push 0
push esi
call fcn.10007820
mov edx, esi
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x4c], 0
jmp 0x10058c83
mov ecx, edx
mov edx, 0x83
push 0
push dword [esp + 0x1c]
push esi
call fcn.10007820
add esp, 0xc
jmp 0x10058d90
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov dword [esi + 0x13c], eax
jmp 0x100585fa
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 8]
mov dword [ecx + 0x28], eax
jmp 0x100585ab
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
jmp 0x10058eff
push esi
call fcn.10037c90
add esp, 4
jmp 0x100597d8
cmp dword [esp + 0x34], 0
sete al
mov edx, dword [esp + 0x28]
mov esi, edx
xor dl, 1
test al, dl
je 0x1005aae3
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10059f2b
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ebx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ebx + eax*4], 0x25
mov edx, dword [esp + 0x30]
mov dword [ebx + eax*4 + 4], edx
mov edx, dword [esp + 0x58]
mov dword [ebx + eax*4 + 8], edx
mov esi, ecx
xor edx, edx
mov dword [ebx + eax*4 + 0xc], edx
mov dword [ebx + eax*4 + 0x10], edx
mov eax, dword [edi + 0x38]
dec eax
mov dword [esp + 0x20], eax
mov dword [edi + 0x38], eax
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
mov ecx, esi
jle 0x10059f49
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x44], edx
lea ebx, [edx + edx*4]
mov dword [eax + ebx*4], 0x83
mov edx, dword [esp + 0x30]
mov dword [eax + ebx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ebx*4 + 8], edx
mov esi, ecx
xor edx, edx
mov dword [eax + ebx*4 + 0xc], edx
mov dword [eax + ebx*4 + 0x10], edx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
mov ecx, esi
jle 0x10059f6b
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x20
mov dword [ecx + eax*4 + 4], ebx
mov edx, dword [esp + 0x20]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp + 0x18]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
mov dword [esp + 0x28], 0
jmp 0x10059b62
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xb0]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10059f86
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x7c
mov edx, dword [esp + 0x30]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x54]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp + 0x18]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
mov dword [esp + 0x28], 0
xor edx, edx
xor ebx, ebx
jmp 0x10058dea
mov ecx, dword [edx + 0xc]
mov esi, dword [esp + 0x20]
not esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1005aba5
mov eax, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov eax, dword [edx + 0x6c]
cmp dword [edx + 0x70], eax
jle 0x10059fa4
lea ecx, [eax + 1]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 5
mov edx, dword [esp + 0x30]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10059701
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], 0
cmp dword [esp + 0x28], 0
jne 0x1005a684
push 0x10
push dword [esp + 0x5c]
push dword [ebp + 0xc]
push ebx
call fcn.10044d40
add esp, 0x10
xor edi, edi
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x80], 0
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
jmp 0x10058d42
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x10]
jmp 0x10058dee
mov ecx, dword [eax + 8]
mov esi, dword [edx]
test esi, esi
je 0x1005abbb
test ecx, ecx
je 0x1005986f
xor edi, edi
jmp 0x10059842
mov ebx, dword [esp + 8]
jmp 0x10059d4e
mov ecx, edi
mov edx, dword [esp + 4]
push esi
push dword [esp + 0x28]
push 0
push dword [esp + 0x24]
call fcn.100530d0
add esp, 0x10
jmp 0x10059633
xor eax, eax
mov ecx, dword [esp + 8]
mov edi, edx
mov edx, dword [esp + 4]
push esi
push dword [esp + 0x28]
mov ebx, dword [esp + 0x58]
push ebx
push eax
call fcn.100530d0
add esp, 0x10
xor eax, eax
cmp edi, 2
sete al
add eax, eax
add eax, 4
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
xor edi, edi
push edi
push edi
mov edi, dword [esp + 0x10]
push eax
push dword [esp + 0x90]
push ebx
push dword [esp + 0xa0]
push dword [esp + 0x34]
call fcn.10052e20
add esp, 0x1c
mov ecx, edi
mov edx, dword [esp + 4]
push esi
push dword [esp + 0x28]
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.10062570
add esp, 0x10
jmp 0x100596be
mov ecx, edi
mov edx, dword [esp + 4]
call fcn.100623c0
jmp 0x10059964
lea ebx, [ecx + ecx*4]
test byte [edx + ebx*4 + 0x10], 1
mov edx, dword [esp + 4]
je 0x1005919f
jmp 0x1005a766
mov edx, dword [esp + 0x68]
push 0
push ebx
push eax
call fcn.10007820
add esp, 0xc
jmp 0x10058fc4
mov edx, 0x48
xor eax, eax
push eax
push ebx
push eax
call fcn.10007820
mov eax, dword [esp + 0x10]
add esp, 0xc
jmp 0x10058fcc
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov dword [esi + 0x134], eax
jmp 0x100585fa
mov ecx, esi
mov eax, edx
mov edx, 0x70
push 0
mov ebx, dword [esp + 0x44]
mov esi, ebx
push ebx
push eax
call fcn.10007820
add esp, 0xc
mov ebx, eax
jmp 0x100593c7
mov ecx, esi
mov edx, 0x48
push dword [esp + 0x10]
push dword [esp + 0x50]
push 0
call fcn.10007820
add esp, 0xc
jmp 0x10059388
inc dword [esi + 0x12c]
jmp 0x100586cd
xor eax, eax
jmp 0x100598f7
mov edx, 0x4d
push 0
push dword [esp + 0x54]
push dword [esp + 0x20]
call fcn.10007820
add esp, 0xc
jmp 0x10058f28
mov esi, ecx
mov edx, 0x25
push 0
push dword [esp + 0x5c]
push dword [esp + 0x38]
call fcn.10007820
add esp, 0xc
jmp 0x10059bcd
mov esi, ecx
mov edx, 0x83
push 0
push dword [esp + 0x1c]
push dword [esp + 0x38]
call fcn.10007820
add esp, 0xc
mov dword [esp + 0x44], eax
jmp 0x10059c19
mov edx, 0x20
push dword [esp + 0x18]
push dword [esp + 0x24]
push ebx
call fcn.10007820
add esp, 0xc
jmp 0x10059c5a
mov edx, 0x7c
push dword [esp + 0x18]
push dword [esp + 0x58]
push dword [esp + 0x38]
call fcn.10007820
add esp, 0xc
jmp 0x10059cc6
mov ecx, edx
mov edx, 5
push 0
push dword [esp + 0x48]
push dword [esp + 0x38]
call fcn.10007820
add esp, 0xc
jmp 0x10059701
mov ecx, dword [esp + 0x2c]
mov edi, dword [ebp + 8]
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
movzx eax, word [esp + 0x18]
jmp 0x100588c7
shl ecx, 0x1a
sar ecx, 0x1f
add ebx, ecx
jmp 0x10058fc8
xor ecx, ecx
jmp 0x100588c3
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x80]
mov eax, dword [edi + eax*4 + 8]
mov dword [esp + 0x90], eax
mov al, 1
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x24]
jmp 0x100588b4
mov eax, dword [esp + 0x10]
lea esi, [eax + eax*4]
mov edi, dword [edi + esi*4 + 0xc]
cmp dword [esp + 0x34], 0
jne 0x1005a6cd
mov ecx, edi
call fcn.10158380
test eax, eax
je 0x1005a6cd
mov edi, dword [ebp + 8]
mov eax, dword [edi + esi*4 + 8]
mov dword [esp + 0x90], eax
mov ebx, str.ROWID
mov al, 1
mov dword [esp + 0x6c], eax
xor eax, eax
dec eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], eax
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
jmp 0x100588dd
cmp byte [eax + 0xa9], 0
jne 0x100588ed
mov esi, dword [esp + 8]
cmp byte [esi + 0xc8], 0
jne 0x100588ed
mov edi, edx
mov edx, dword [esp + 0x38]
mov edx, dword [edx + 0x10]
mov esi, dword [esp + 0x70]
shl esi, 4
mov esi, dword [edx + esi]
mov edx, dword [edi]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 8]
mov edi, dword [edx + 0xf0]
mov eax, dword [eax + 0x154]
mov dword [esp + 0x2c], eax
call dword [section..00cfg]
push edi
push esi
push ebx
push dword [esp + 0x20]
push 0x17
push dword [esp + 0x40]
call ecx
add esp, 0x18
cmp eax, 1
je 0x1005a6e6
test eax, 0xfffffffd
jne 0x1005a701
cmp eax, 1
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x24]
je 0x10059764
cmp eax, 2
jne 0x100588ed
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0xffffffff
jmp 0x100588ed
cmp dword [esp + 0x7c], 0
movsx ecx, word [esp + 0x78]
cmove edx, ecx
add esi, edx
mov ecx, dword [esp + 0xc]
mov edx, 0x5b
push ebx
push esi
push dword [esp + 0x38]
call fcn.10036aa0
jmp 0x10059e89
push ecx
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x10]
call fcn.100394d0
add esp, 0xc
mov esi, dword [esp + 0x38]
jmp 0x10059764
cmp dword [esp + 0x34], 0
je 0x1005a72a
mov edi, dword [esp + 0xc]
mov ecx, edi
mov edx, 0x1d
push dword [esp + 0x48]
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x53], 0
mov bl, byte [esp + 0x3c]
jne 0x10059624
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [esp + 0x40]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10059624
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, 0x7e
push eax
push eax
push dword [esp + 0x24]
call fcn.10036aa0
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x1005967c
mov al, 1
mov dword [esp + 0x5c], eax
mov edi, dword [ebp + 8]
jmp 0x100588b4
mov eax, dword [esp + 0x5c]
bt eax, edi
jb 0x10058ff7
xor eax, eax
mov edx, 0x48
push eax
push ebx
push eax
call fcn.10036aa0
mov eax, dword [esp + 0x10]
add esp, 0xc
jmp 0x10058fc8
mov eax, dword [edi + 0x28]
mov edx, dword [eax + esi*2]
xorps xmm0, xmm0
movaps xmmword [esp + 0xe0], xmm0
xor eax, eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xe4], 0x101983a0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xf8], ecx
test edx, edx
je 0x1005a26a
lea ecx, [esp + 0xe0]
call fcn.10148200
lea eax, [esp + 0xe0]
movzx eax, word [eax + 0x14]
mov ecx, eax
and ecx, 0xfffffffd
cmp byte [esp + 0x6c], 0
cmovne ecx, eax
xor eax, eax
test cx, cx
setne al
jmp 0x100589ca
xorps xmm0, xmm0
lea ebx, [esp + 0xe0]
movaps xmmword [ebx], xmm0
xor eax, eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x101983a0
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x18], eax
mov esi, ecx
mov ecx, ebx
call fcn.10148200
mov eax, dword [ebx + 0x14]
mov ecx, eax
and ecx, 0xfffffffd
cmp byte [esp + 0x6c], 0
cmovne ecx, eax
test cx, cx
mov ecx, esi
je 0x1005899c
jmp 0x10058a0f
mov eax, dword [esp + 0x60]
lea edx, [eax + 8]
mov ecx, dword [esp + 8]
call fcn.10162640
test eax, eax
jne 0x10059771
jmp 0x1005849a
mov esi, 0xffff8000
jmp 0x100584be
mov eax, dword [edi]
mov dword [esp + 0x28], eax
jmp 0x100584fd
movzx eax, word [edx + 0x2a]
test ax, ax
jle 0x10058916
xor ebx, ebx
mov edi, 4
xor esi, esi
mov eax, dword [esp + 0x24]
cmp dword [eax + ebx*4], 0
js 0x1005a334
inc ebx
mov eax, dword [esp + 4]
movsx eax, word [eax + 0x2a]
add edi, 5
cmp ebx, eax
jl 0x1005a318
jmp 0x1005a3b3
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
test byte [eax + edi*4], 0x60
je 0x1005a322
mov edx, dword [eax + edi*4 - 0xc]
xorps xmm0, xmm0
movaps xmmword [esp + 0xe0], xmm0
xor eax, eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xe4], 0x101983a0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xf8], ecx
test edx, edx
je 0x1005a38e
lea ecx, [esp + 0xe0]
call fcn.10148200
movzx eax, word [esp + 0xf4]
mov ecx, eax
and ecx, 0xfffffffd
cmp byte [esp + 0x6c], 0
cmovne ecx, eax
test cx, cx
je 0x1005a322
mov eax, dword [esp + 0x24]
mov dword [eax + ebx*4], 0x1869f
xor esi, esi
inc esi
jmp 0x1005a322
test esi, esi
mov edx, dword [esp + 4]
jne 0x1005a306
jmp 0x10058916
mov dword [esp + 0xb8], 1
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
jmp 0x10058961
push dword [esp + 0x50]
push 1
push dword [esp + 0x70]
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x10]
add esp, 0xc
jmp 0x10058a63
mov dword [esp + 0x18], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x54], 0
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 8]
jmp 0x10058b65
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [ebx + 0xf0]
mov dword [esp + 0x98], ecx
mov dword [ebx + 0xf0], eax
cmp dword [esp + 0x28], 0
jne 0x1005a780
mov ebx, dword [esp + 8]
mov ecx, ebx
mov edx, dword [esp + 4]
push dword [esp + 0x1c]
mov edi, dword [ebp + 0xc]
push edi
call fcn.10166700
mov edx, edi
add esp, 8
mov dword [esp + 0xa4], ebx
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 8]
jmp 0x10058b94
mov dword [esp + 0x98], 0
mov dword [esp + 0x70], 0
jmp 0x10058bae
mov ecx, ebx
mov eax, edx
mov edx, dword [esp + 0x60]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x2c]
push dword [esp + 0x9c]
push edi
push eax
call fcn.10166b40
add esp, 0x18
jmp 0x10059751
cmp dword [ebx + 0x78], 0
je 0x1005a827
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 8]
mov edx, dword [esp + 4]
jmp 0x10058be3
cmp byte [esp + 0x70], 0
je 0x1005a79f
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x90]
push dword [esp + 0x50]
call fcn.101665c0
add esp, 4
jmp 0x1005a7bf
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x88]
push dword [esp + 4]
call fcn.10167340
mov eax, dword [esp + 8]
add esp, 4
jmp 0x100595a6
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
push dword [esp + 0x88]
call fcn.10055ee0
add esp, 4
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, dword [esp + 0x74]
push dword [esp + 0x20]
push dword [ebp + 0x10]
push dword [esp + 0x20]
push dword [esp + 0x10]
push 1
push dword [ebp + 8]
push 0x80
call fcn.1005afa0
add esp, 0x1c
cmp dword [esp + 0x7c], 0
jne 0x100596be
cmp dword [esp + 0x34], 0
je 0x1005aa1d
mov esi, dword [esp + 0xc]
mov ecx, esi
mov edx, 0x1d
push dword [esp + 0x48]
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
jne 0x1005aa3a
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [esp + 0x40]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x1005aa3a
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, 0x8b
push eax
push eax
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
jmp 0x10059663
mov ecx, dword [esp + 0xc]
mov edx, 0x53
push 0
push 1
push ebx
call fcn.10036aa0
add esp, 0xc
jmp 0x100596cd
mov edx, dword [esp + 0xc]
push esi
call fcn.10037c90
mov edx, dword [esp + 0x10]
add esp, 4
jmp 0x10059726
mov ecx, edx
mov esi, edx
mov edx, 0x50
push 0
push 1
push ebx
call fcn.10036aa0
add esp, 0xc
xor edx, edx
inc edx
mov ecx, esi
call fcn.10036960
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x1005a660
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x74]
sub esp, 0x10
movaps xmm0, xmmword [0x1019c160]
movups xmmword [esp], xmm0
mov edx, str.rows_updated
call fcn.100364f0
add esp, 0x10
mov esi, dword [esp + 0x38]
jmp 0x1005974e
mov eax, dword [esp + 0x98]
mov dword [ecx + 0xf0], eax
jmp 0x10059764
cwde
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 8]
mov eax, dword [ebx + 0x74]
test eax, eax
cmove eax, ebx
mov byte [eax + 0x14], 1
xor edx, edx
mov al, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0x40]
jmp 0x10058dee
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x38]
jmp 0x10059751
mov dword [esp + 0x28], 0
jmp 0x10059cd0
push edi
push str.no_such_column:__s
mov esi, dword [esp + 0x10]
push esi
call fcn.100394d0
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x1005a71a
push str.not_authorized
mov esi, dword [esp + 0xc]
push esi
call fcn.100394d0
add esp, 8
mov dword [esi + 0xc], 0x17
jmp 0x1005a71a
push str.authorizer_malfunction
mov esi, dword [esp + 0xc]
push esi
call fcn.100394d0
add esp, 8
mov dword [esi + 0xc], 1
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x24]
jmp 0x10059764
mov ecx, dword [esp + 0xc]
mov edx, 0x20
push dword [esp + 0x18]
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
mov bl, byte [esp + 0x3c]
jmp 0x10059624
test dl, dl
mov eax, dword [esp + 0x18]
je 0x1005a766
mov eax, dword [esp + 0x44]
inc eax
mov edx, dword [esp + 0x58]
jmp 0x100591c0
cmp byte [eax + 0x1a], 0
jne 0x1005a8e0
xor ecx, ecx
inc ecx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x18]
jmp 0x10059207
mov dword [esp + 0x70], 0
mov ebx, dword [esp + 8]
mov dword [esp + 0xa4], ebx
mov esi, dword [esp + 0x38]
mov edi, dword [ebp + 8]
jmp 0x10058bae
mov ecx, dword [esp + 0xc]
mov edx, 0x5b
push dword [esp + 0x50]
push dword [esp + 0x98]
push dword [esp + 0x38]
call fcn.10036aa0
add esp, 0xc
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, 0xf
push eax
push eax
push dword [esp + 0x58]
call fcn.10036aa0
add esp, 0xc
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
jmp 0x10058f0a
mov edx, 0x1d
push dword [esp + 0x48]
push dword [esp + 0x5c]
push eax
call fcn.10036aa0
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [ecx]
cmp byte [edx + 0x53], 0
mov edx, dword [esp + 0x10]
jne 0x10058e9f
mov edx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 + 1], 0xfd
mov dword [edx + eax*4 + 0x10], ebx
mov edx, dword [esp + 0x10]
jmp 0x10058e9f
mov eax, dword [esp + 8]
cmp byte [eax + 0x12], 0
jne 0x1005a4d1
cmp dword [ebp + 0x14], 0
jne 0x1005a4d1
mov ebx, dword [esp + 8]
cmp byte [ebx + 0x91], 0
mov edi, dword [ebp + 8]
mov edx, dword [esp + 4]
jne 0x10058be3
mov esi, dword [ebx + 0x2c]
inc esi
mov dword [ebx + 0x2c], esi
mov ecx, dword [esp + 0xc]
mov edx, 0x45
xor eax, eax
push eax
xor eax, eax
mov dword [esp + 0xb0], esi
push esi
push eax
call fcn.10036aa0
mov edx, dword [esp + 0x10]
add esp, 0xc
jmp 0x10058be3
xor esi, esi
xor ecx, ecx
test di, di
jle 0x1005a8a8
mov eax, dword [esp + 0x14]
mov dl, byte [eax + esi + 0x10]
and dl, 0x20
cmp dl, 1
adc cx, 0
add esi, 0x14
cmp ebx, esi
jne 0x1005a88f
movsx edx, di
lea edx, [edx + edx*4]
mov eax, dword [esp + 0x14]
test byte [eax + edx*4 + 0x10], 0x20
je 0x1005a8c7
mov edx, edi
sub edx, ecx
mov eax, dword [esp + 4]
add dx, word [eax + 0x2c]
mov ecx, edx
mov eax, dword [esp + 0x5c]
jmp 0x100599ba
mov ecx, edi
call fcn.10166990
mov edx, dword [esp + 0xc]
jmp 0x10059746
mov dword [esp + 0x2c], 2
mov edx, dword [esp + 4]
jmp 0x1005894d
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
xor edx, edx
jmp 0x100585a1
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x34], 0
test ecx, ecx
mov edx, 0
jne 0x1005867f
jmp 0x10058563
mov dword [esp + 0x78], 0
jmp 0x100592e6
mov ecx, dword [esp + 0x38]
mov edi, edx
mov edx, dword [esp + 0x34]
call fcn.10044c40
mov dword [esp + 0x10], eax
mov ecx, edi
mov edx, 0x5d
push dword [esp + 0x48]
push ebx
mov esi, dword [esp + 0x54]
push esi
call fcn.10036aa0
add esp, 0xc
mov ecx, edi
mov edx, eax
mov dword [esp + 0x40], ebx
push ebx
push dword [esp + 0x14]
call fcn.1004f010
add esp, 8
mov ecx, edi
mov edx, 0x86
push esi
push dword [esp + 0x4c]
push dword [esp + 0x38]
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [edi]
mov dword [esp + 0x28], 0
cmp byte [ecx + 0x53], 0
jne 0x10059cce
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [esp + 0x40]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10059cc6
movsx ebx, word [edx + 0x2a]
jmp 0x10059324
cmp dword [ecx + 0x1f8], 0
jne 0x10059405
dec dword [eax]
jne 0x10059405
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.10139000
jmp 0x10059405
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x30]
mov edx, esi
push dword [ebp + 0xc]
push dword [esp + 0x64]
push edi
push dword [esp + 0x40]
call fcn.101670c0
mov edx, esi
add esp, 0x10
cmp dword [esp + 0x7c], 0
mov eax, dword [esp + 0x1c]
cmovne eax, esi
mov dword [esp + 0x1c], eax
jmp 0x10059414
mov ecx, dword [esp + 0xc]
mov edx, 0x20
push dword [esp + 0x18]
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
mov eax, dword [esp + 4]
movzx eax, word [eax + 0x2a]
test ax, ax
jle 0x1005aab1
xor esi, esi
mov edi, 4
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 4]
movzx ecx, word [ecx + edi*4]
test cl, 0x60
je 0x1005aa7b
shl ecx, 0x1a
sar ecx, 0x1f
add ebx, ecx
inc esi
inc ebx
movsx ecx, ax
add edi, 5
cmp esi, ecx
jl 0x1005aa55
jmp 0x1005aab1
mov ecx, dword [esp + 0x24]
cmp dword [ecx + esi*4], 0
jns 0x1005aa6d
mov ecx, dword [esp + 4]
movsx ecx, word [ecx + 0x28]
cmp esi, ecx
je 0x1005aa6d
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
push ebx
push esi
push dword [esp + 0x24]
call fcn.1003db30
add esp, 0xc
mov eax, dword [esp + 4]
movzx eax, word [eax + 0x2a]
jmp 0x1005aa6d
mov eax, dword [esp + 4]
test byte [eax + 0x24], 0x60
mov bl, byte [esp + 0x3c]
je 0x100595b8
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x88]
push dword [esp + 4]
call fcn.10167340
mov eax, dword [esp + 8]
add esp, 4
jmp 0x100595b8
mov eax, dword [edi + 0x38]
dec eax
mov dword [esp + 0x20], eax
mov dword [edi + 0x38], eax
mov edi, ecx
mov edx, 0x25
push 0
push dword [esp + 0x5c]
push dword [esp + 0x38]
call fcn.10036aa0
add esp, 0xc
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x44], eax
mov eax, esi
test al, al
je 0x1005abd3
mov al, 1
mov dword [esp + 0x28], eax
cmp dword [esp + 0x7c], 0
jne 0x10059b5e
cmp dword [esp + 0x34], 0
je 0x1005ac4b
movsx esi, word [esp + 0x78]
test si, si
jle 0x1005ab62
xor edi, edi
mov eax, dword [esp + 0x4c]
add eax, edi
mov ecx, dword [esp + 0xc]
mov edx, 0x5b
push eax
push edi
push dword [esp + 0x38]
call fcn.10036aa0
add esp, 0xc
inc edi
cmp esi, edi
jne 0x1005ab40
mov edi, dword [esp + 0xc]
mov ecx, edi
mov edx, 0x1d
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x53], 0
jne 0x10059b5e
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], esi
jmp 0x10059b5e
mov edx, dword [esp + 0xc]
push esi
call fcn.10037c90
mov edx, dword [esp + 0x10]
add esp, 4
jmp 0x10059cf5
xor edi, edi
inc edi
test ecx, ecx
jne 0x10059835
mov dword [esp + 0x2c], 2
jmp 0x1005986f
mov esi, dword [esp + 0xc]
mov ecx, esi
mov edx, 0x82
push 0
mov edi, dword [esp + 0x4c]
push edi
push dword [esp + 0x38]
call fcn.10036aa0
add esp, 0xc
mov ecx, esi
mov edx, 0x1d
push edi
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
jne 0x1005ac28
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], 0
mov dword [esp + 0x28], 0
jmp 0x10059b5e
mov eax, dword [esp + 0x54]
mov dword [ecx + 0x6c], eax
jmp 0x10059586
mov edx, 0x101ddee0
jmp 0x1005957f
mov esi, dword [esp + 0xc]
mov ecx, esi
mov edx, 0x83
push 0
mov edi, dword [esp + 0x1c]
push edi
push dword [esp + 0x38]
call fcn.10036aa0
add esp, 0xc
mov ecx, esi
mov edx, 0x20
push edi
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.10036aa0
add esp, 0xc
jmp 0x10059b5e