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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xfc
mov dword [ebp - 0xa4], edx
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x54], 0
mov eax, dword [ecx]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0x5c], ecx
cmp dword [ecx + 0x24], 0
jne 0x10054b03
mov edi, dword [ebp - 0xa4]
mov eax, dword [edi + 8]
test eax, eax
jne 0x10053ddc
lea esi, [edi + 0xc]
mov ecx, dword [ebp - 0x5c]
xor edx, edx
push dword [esi]
push dword [edi + 0x10]
call fcn.10038860
add esp, 8
mov esi, eax
mov edx, dword [edi + 0x18]
test edx, edx
jne 0x10053dbb
mov dword [edi + 0x18], esi
test esi, esi
je 0x10054b03
inc dword [esi + 0x18]
mov eax, dword [ebp - 0xa4]
test byte [eax + 0x30], 2
jne 0x10055c68
mov dword [ebp - 0x58], esi
mov ecx, dword [esi + 0x3c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
test ecx, ecx
je 0x10055c86
mov edx, dword [eax + 0x10]
add edx, 0xc
xor edi, edi
dec edi
inc edi
lea esi, [edx + 0x10]
cmp dword [edx], ecx
mov edx, esi
jne 0x10053c25
mov esi, dword [ebp - 0x58]
cmp dword [esi + 0x38], 0
jne 0x10053c5b
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x10053c48
cmp dword [eax + 0x30], 0
jne 0x10053c5b
mov dword [ebp - 0x50], 0
mov dword [ebp - 0xc8], 0
jmp 0x10053c86
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x9f], 0
jne 0x10053c48
lea eax, [ebp - 0x50]
mov ecx, dword [ebp - 0x5c]
mov edx, esi
push eax
push dword [ebp + 8]
push 0x81
call fcn.1004f5c0
add esp, 0xc
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x90], edi
mov cl, byte [esi + 0x2b]
mov dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0xa4]
cmp dword [eax], 2
jge 0x10055c90
mov byte [ebp - 0x61], cl
cmp cl, 1
je 0x10055a75
cmp word [esi + 0x22], 0
jle 0x10055a75
mov ecx, dword [ebp - 0x5c]
mov edx, esi
push dword [ebp - 0x50]
call fcn.1004ed10
add esp, 4
test eax, eax
jne 0x10054b03
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0xb4], ecx
inc ecx
mov dword [ebp - 0xe0], ecx
mov dword [eax + 0x28], ecx
xor ebx, ebx
test byte [esi + 0x1c], 0x80
mov eax, dword [esi + 8]
mov dword [ebp - 0x8c], 0
mov edi, dword [ebp - 0xd0]
jne 0x10053df8
test eax, eax
je 0x10053db0
mov edi, dword [ebp - 0xb4]
lea ecx, [edi + 2]
xor ebx, ebx
mov esi, dword [ebp - 0x8c]
lea edx, [ecx - 1]
cmp esi, eax
cmove edi, edx
mov edx, dword [ebp - 0x5c]
mov dword [edx + 0x28], ecx
inc ebx
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x10053d2b
mov dword [ebp - 0x74], edi
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp - 0xd0]
cmp dword [ebp + 0x14], 0
mov edx, dword [ebp - 0xa4]
jne 0x10055339
mov eax, dword [ebp - 0x74]
mov dword [edx + 0x34], eax
movsx eax, word [esi + 0x22]
add eax, ebx
lea edx, [ebx + eax*4]
add edx, 6
movzx eax, word [edi + 0x12c]
cmp edx, eax
ja 0x10053e1c
cmp edx, 0x80
ja 0x10053e42
mov eax, dword [edi + 0x150]
test eax, eax
je 0x10053e34
mov ecx, edi
mov edi, eax
mov eax, dword [eax]
mov dword [ecx + 0x150], eax
inc dword [ecx + 0x138]
jmp 0x10053e7e
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x74], eax
jmp 0x10053d4e
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax]
cmp dword [ecx + 0x208], 0
jne 0x10053dd2
dec dword [edx + 0x18]
jne 0x10053beb
call fcn.1001dfd0
jmp 0x10053beb
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 0x10]
add ecx, 0xfffffff0
lea esi, [ecx + 0x10]
cmp dword [ecx + 0x1c], eax
mov ecx, esi
je 0x10053bcc
jmp 0x10053de8
test eax, eax
je 0x10056154
mov ecx, eax
mov edx, dword [ecx + 0x38]
and edx, 3
cmp edx, 2
jne 0x1005616e
mov dword [ebp - 0x8c], ecx
jmp 0x10053d12
cmp dword [edi + 0x128], 0
je 0x100557f5
cmp byte [edi + 0x57], 0
je 0x10053e64
jmp 0x10054b03
mov eax, dword [edi + 0x14c]
test eax, eax
jne 0x100554a8
mov eax, dword [edi + 0x148]
test eax, eax
jne 0x10055414
mov eax, dword [edi + 0x144]
test eax, eax
jne 0x100557e4
inc dword [edi + 0x140]
mov ecx, dword [ebp - 0xd0]
push 0
call fcn.10137840
add esp, 4
mov edi, eax
test eax, eax
je 0x10054b03
movsx eax, word [esi + 0x22]
lea eax, [edi + eax*4]
lea esi, [eax + ebx*4]
mov dword [ebp - 0xd4], eax
lea eax, [eax + ebx*4]
add eax, 4
lea ecx, [ebx + 1]
mov dword [ebp - 0xb0], ecx
push ecx
push 1
mov dword [ebp - 0x78], eax
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x100], ebx
mov byte [ebx + esi + 5], 0
mov esi, dword [ebp - 0x58]
cmp word [esi + 0x22], 0
jle 0x10053ed3
xor eax, eax
mov dword [edi + eax*4], 0xffffffff
inc eax
movsx ecx, word [esi + 0x22]
cmp eax, ecx
jl 0x10053ec3
mov dword [ebp - 0x94], edi
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x34], 0x200
mov eax, dword [eax + 8]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x100540ac
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jle 0x100540d6
xor edi, edi
xor ecx, ecx
dec ecx
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x6c], edi
lea edi, [edi + edi*4]
mov eax, dword [eax + edi*4 + 0xc]
test eax, eax
je 0x100540a5
mov cl, byte [eax]
test cl, cl
je 0x100540a5
inc eax
xor ebx, ebx
movzx ecx, cl
add bl, byte [ecx + 0x101af7e8]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10053f65
mov eax, dword [ebp + 8]
lea eax, [eax + edi*4]
add eax, 8
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0x7c], 0
jne 0x10053fa2
mov eax, dword [ebp - 0xac]
mov edx, dword [eax]
lea ecx, [ebp - 0x4c]
call fcn.10030db0
test eax, eax
jne 0x10054af2
mov eax, dword [ebp + 8]
lea eax, [eax + edi*4]
add eax, 0xc
mov dword [ebp - 0x80], eax
movsx eax, word [esi + 0x22]
test eax, eax
jle 0x1005595d
mov dword [ebp - 0xc4], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x68], eax
xor edi, edi
mov dword [ebp - 0x70], edi
shl edi, 4
mov eax, dword [ebp - 0x68]
cmp byte [eax + edi + 0xa], bl
je 0x10053fe8
mov edi, dword [ebp - 0x70]
inc edi
cmp edi, dword [ebp - 0xc4]
jne 0x10053fc8
jmp 0x100558d2
mov eax, dword [ebp - 0x80]
mov esi, dword [eax]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + edi]
mov dword [ebp - 0x98], eax
xor eax, eax
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + eax]
movzx ecx, byte [esi + eax]
cmp dl, cl
jne 0x100558bb
test edx, edx
mov ecx, dword [ebp - 0xac]
je 0x1005401e
inc eax
jmp 0x10053ffb
mov esi, dword [ebp - 0x58]
movsx eax, word [esi + 0x20]
cmp dword [ebp - 0x70], eax
je 0x10055967
mov eax, dword [ebp - 0x68]
movzx eax, word [eax + edi + 0xe]
cmp dword [ebp - 0x8c], 0
je 0x1005404d
mov ecx, eax
and ecx, 1
test cx, cx
jne 0x10055c52
test al, 0x60
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x6c]
jne 0x10055942
mov ecx, dword [ebp - 0x70]
mov dword [eax + ecx*4], edi
movsx eax, word [esi + 0x22]
cmp ecx, eax
jge 0x100558d2
mov eax, dword [esi + 4]
mov edx, ecx
mov dword [ebp - 0x70], ecx
shl ecx, 4
mov ebx, dword [eax + ecx]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x164]
test ecx, ecx
jne 0x1005598b
inc edi
mov eax, dword [ebp + 8]
cmp edi, dword [eax]
mov ecx, dword [ebp - 0xa4]
jl 0x10053f46
jmp 0x10054103
xor ebx, ebx
jmp 0x10053f75
mov ecx, dword [ebp - 0x5c]
cmp dword [ecx + 0x78], 0
jne 0x100540c1
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x100540c1
mov byte [ecx + 0x17], 1
call fcn.1002f500
mov dword [ebp - 0x60], eax
test eax, eax
jne 0x10053f11
jmp 0x10054af2
xor eax, eax
dec eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xe4], 0
mov ecx, dword [ebp - 0xa4]
test byte [esi + 0x1c], 0x60
mov ebx, dword [ebp - 0x5c]
jne 0x10055c9d
mov eax, dword [ebp - 0xc0]
add al, byte [ebp - 0xa0]
mov byte [ebp - 0xac], al
xor eax, eax
cmp byte [esi + 0x2b], 1
sete al
neg eax
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x40], eax
mov eax, dword [ebx]
test byte [eax + 0x21], 0x40
jne 0x10054219
mov dword [ebp - 0x98], 0
cmp dword [ebp + 0x10], 5
je 0x10055d78
mov edi, dword [esi + 8]
test edi, edi
je 0x10054377
cmp byte [ebp - 0xac], 0
setne al
cmp dword [ebp - 0x98], 2
setge cl
or cl, al
mov byte [ebp - 0x68], cl
xor eax, eax
mov dword [ebp - 0x70], eax
cmp edi, dword [ebp - 0x8c]
sete al
or al, byte [ebp - 0x68]
jne 0x100541fa
mov edx, dword [edi + 0x24]
test edx, edx
jne 0x10055b87
movzx eax, word [edi + 0x32]
test ax, ax
je 0x100541d0
xor ebx, ebx
mov esi, 4
mov ecx, dword [edi + 4]
movzx ecx, word [ecx + ebx*2]
test cx, cx
js 0x10055afc
mov edx, dword [ebp - 0x94]
cmp dword [edx + ecx*4], 0
jns 0x10055b51
inc ebx
movzx ecx, ax
add esi, 0xa
cmp ebx, ecx
jb 0x100541a5
mov esi, dword [ebp - 0x70]
lea edx, [esi + 1]
mov eax, dword [ebp - 0x78]
mov byte [eax + esi + 1], 0
xor eax, eax
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + esi*4], eax
mov edi, dword [edi + 0x14]
mov eax, edx
test edi, edi
mov ebx, dword [ebp - 0x5c]
jne 0x10054179
jmp 0x10054379
mov ecx, dword [ebx + 0x2c]
lea eax, [ecx + 1]
mov dword [ebx + 0x2c], eax
movzx edx, word [edi + 0x34]
add ecx, edx
inc ecx
mov dword [ebx + 0x2c], ecx
test eax, eax
je 0x100541d0
mov esi, dword [ebp - 0x70]
lea edx, [esi + 1]
jmp 0x100541e0
cmp byte [esi + 0x2b], 0
jne 0x1005413f
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x10055106
mov dword [ebp - 0x68], 0
xor eax, eax
inc eax
mov dword [ebp - 0x98], eax
mov eax, dword [esi]
mov ecx, dword [esi + 0x3c]
mov edi, dword [ecx + 0x44]
test edi, edi
mov dword [ebp - 0x70], eax
jne 0x1005536f
lea esi, [ecx + 0x40]
add ecx, 0x3c
mov edx, dword [ecx]
mov ecx, 0x101f2310
test edx, edx
je 0x1005429f
mov esi, dword [esi]
mov edi, dword [esi + 0xc]
xor ebx, ebx
movzx ecx, byte [edi + ebx]
movzx eax, byte [eax + ebx]
cmp cl, al
jne 0x10054283
test ecx, ecx
je 0x100550fc
inc ebx
mov eax, dword [ebp - 0x70]
jmp 0x10054269
mov cl, byte [ecx + 0x101af7e8]
cmp cl, byte [eax + 0x101af7e8]
je 0x1005427d
dec edx
mov eax, dword [ebp - 0x70]
jne 0x10054262
mov ebx, dword [ebp - 0x5c]
mov ecx, 0x101f2310
mov eax, dword [ecx + 8]
test eax, eax
mov esi, dword [ebp - 0x58]
je 0x10054368
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x1005435d
mov dword [ebp - 0xc4], eax
movsx esi, word [esi + 0x22]
xor edi, edi
mov dword [ebp - 0x80], ecx
test si, si
jle 0x10054345
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + edi*8 + 0x28]
mov dword [ebp - 0x70], eax
xor ecx, ecx
mov eax, dword [ebp - 0x94]
cmp dword [eax + ecx*4], 0
jns 0x10054302
cmp byte [ebp - 0xac], 0
je 0x100542fb
mov eax, dword [ebp - 0x58]
movsx eax, word [eax + 0x20]
cmp ecx, eax
je 0x10054302
inc ecx
cmp ecx, esi
jne 0x100542db
jmp 0x10054345
mov eax, dword [ebp - 0x58]
mov edx, dword [eax + 4]
cmp dword [ebp - 0x70], 0
je 0x100554d0
mov eax, ecx
shl eax, 4
mov eax, dword [edx + eax]
xor ebx, ebx
mov dword [ebp - 0x6c], eax
movzx edx, byte [eax + ebx]
mov eax, dword [ebp - 0x70]
movzx eax, byte [eax + ebx]
cmp dl, al
je 0x10056007
mov dl, byte [edx + 0x101af7e8]
cmp dl, byte [eax + 0x101af7e8]
jne 0x100542fb
jmp 0x1005600b
inc edi
mov ecx, dword [ebp - 0x80]
cmp edi, ecx
jne 0x100542c7
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x100542ad
cmp dword [ebp - 0x68], 0
jne 0x10054149
jmp 0x1005413f
xor edx, edx
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x68], eax
test eax, eax
jne 0x10055d84
cmp byte [ebx + 0x12], 0
mov eax, dword [ebp - 0x60]
jne 0x100543a7
or byte [eax + 0x98], 0x10
mov eax, dword [ebp - 0xc8]
or eax, dword [ebp - 0x98]
setne bl
mov eax, dword [ebp - 0x5c]
mov esi, dword [eax + 0x78]
test esi, esi
cmove esi, eax
mov eax, dword [esi + 0x58]
xor edi, edi
inc edi
mov dword [ebp - 0xc4], edi
mov ecx, dword [ebp - 0x90]
shl edi, cl
bt eax, ecx
mov dword [ebp - 0xfc], edx
jb 0x100543ee
or eax, edi
mov dword [esi + 0x58], eax
cmp ecx, 1
je 0x10055327
or dword [esi + 0x54], edi
or byte [esi + 0x14], bl
mov esi, dword [ebp - 0x58]
cmp byte [esi + 0x2b], 1
je 0x10055da0
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0xb8], eax
mov edi, dword [ebp - 0x5c]
mov ecx, dword [edi + 0x2c]
lea eax, [ecx + 1]
mov dword [ebp - 0x6c], eax
mov dword [edi + 0x2c], eax
cmp byte [ebp - 0xa0], 0
mov edx, dword [ebp - 0xc8]
mov bl, byte [ebp - 0x61]
jne 0x10054d81
test edx, edx
jne 0x10054d81
mov dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x98], 0
jne 0x10054d81
cmp byte [ebp - 0xac], 0
jne 0x10054d96
test edx, edx
jne 0x10054d96
cmp dword [ebp - 0x98], 0
jne 0x10054d96
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0xb0], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0xdc], ecx
movsx ecx, word [esi + 0x22]
add ecx, eax
mov dword [edi + 0x2c], ecx
cmp bl, 2
mov edx, dword [ebp + 0xc]
je 0x10055dd7
mov dword [ebp - 0xf8], 0
cmp dword [ebp - 0x7c], 0
jne 0x10055e1d
mov dword [ebp - 0xf0], 0
lea ecx, [ebp - 0x4c]
call fcn.10030db0
mov cl, 1
mov dword [ebp - 0xbc], ecx
test eax, eax
jne 0x10054ae4
cmp byte [esi + 0x2b], 1
mov eax, dword [ebp - 0xd0]
je 0x10055e36
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0x108], ecx
dec ecx
mov dword [ebp - 0xcc], ecx
mov dword [edi + 0x38], ecx
mov dword [ebp - 0xf4], 0
test byte [eax + 0x24], 1
jne 0x10055e61
mov edi, dword [ebp - 0x60]
cmp byte [ebp - 0xbc], 0
je 0x10054b47
test byte [esi + 0x1c], 0x80
jne 0x10054b47
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10055425
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x4b
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov esi, dword [ebp - 0xb8]
mov dword [ecx + eax*4 + 8], esi
mov esi, dword [ebp - 0x6c]
mov dword [ecx + eax*4 + 0xc], esi
mov dword [ecx + eax*4 + 0x10], edx
mov ecx, dword [ebp - 0x5c]
mov ebx, dword [ecx + 0x28]
lea eax, [ebx + 1]
mov dword [ecx + 0x28], eax
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
mov dword [ebp - 0x84], ebx
jle 0x10055444
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], ebx
xor edx, edx
mov dword [eax + ecx*4 + 8], edx
mov ebx, dword [ebp - 0xb8]
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [ebp - 0x9c], 0
mov dword [eax + ecx*4 + 0x10], edx
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xa8], 0
mov ebx, dword [ebp - 0xa4]
cmp dword [ebp - 0x7c], 0
jne 0x10055fc4
cmp dword [ebp + 0x14], 0
jne 0x100553de
xor eax, eax
test byte [ebp - 0x34], 0x40
sete al
shl eax, 3
mov edi, 4
or eax, edi
cmp dword [ebp - 0x68], 0
cmovne eax, edi
cmp byte [ebp - 0xac], 0
cmovne eax, edi
mov edx, dword [ebp - 0xc8]
or edx, dword [ebp - 0x98]
cmovne eax, edi
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 0x12], 0
cmovne eax, edi
xor edi, edi
movzx eax, ax
mov edx, ebx
push dword [ebp - 0xe0]
push eax
push edi
push edi
push edi
push dword [ebp + 0xc]
call fcn.1003a780
add esp, 0x18
test eax, eax
je 0x10054ae4
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x90], ecx
mov edx, dword [eax + 0x18]
movzx ecx, byte [eax + 0x2e]
mov dword [ebp - 0xec], eax
mov eax, dword [eax + 0x30]
and eax, 1
mov dword [ebp - 0xc4], eax
cmp ecx, 1
mov edi, dword [ebp - 0x60]
jne 0x100551db
xor eax, eax
inc eax
mov dword [ebp - 0x68], eax
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
test byte [eax + 0x1c], 0x80
mov dword [ebp - 0x80], edx
jne 0x10054ccf
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x1005546d
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x87
mov edx, dword [ebp - 0x74]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp - 0x6c]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
cmp dword [ebp - 0x68], 0
mov edx, dword [ebp - 0xfc]
je 0x100555b1
test esi, esi
je 0x100546ff
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x100546ff
mov edi, dword [edi + 0x68]
lea esi, [esi + esi*4]
movsx edx, byte [edi + esi*4 + 1]
push dword [edi + esi*4 + 0x10]
call fcn.100056c0
add esp, 4
mov dword [edi + esi*4 + 0x10], 0
mov word [edi + esi*4], 0xb8
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x88], 0
mov esi, dword [ebp - 0x58]
cmp dword [ebp + 0x14], 0
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x90]
jne 0x1005535c
cmp dword [ebp - 0x68], 2
setne al
and al, byte [ebp - 0xbc]
cmp al, 1
mov edi, dword [ebp - 0x60]
jne 0x1005474e
mov ecx, dword [ebp - 0xec]
call fcn.10031790
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x80]
cmp byte [ebp - 0x61], 2
je 0x100547a4
cmp dword [ebp - 0x68], 0
je 0x1005477f
test ecx, ecx
js 0x1005476d
mov eax, ecx
sub eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x78]
mov byte [ecx + eax], 0
test edx, edx
jns 0x10054d6d
cmp dword [ebp - 0x68], 2
je 0x1005523e
xor eax, eax
mov ecx, ebx
mov edx, esi
push eax
push eax
push dword [ebp - 0x78]
push dword [ebp - 0xb4]
push eax
push 0x71
call fcn.1004f080
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x80]
add esp, 0x18
cmp dword [ebp - 0x68], 0
je 0x10055675
mov eax, dword [ebp - 0x74]
cmp ecx, eax
je 0x100547bd
cmp edx, eax
jne 0x100560ab
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0x78], esi
cmp dword [ebp - 0x68], 1
jne 0x1005522f
cmp dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0xa8]
cmove eax, dword [ebp - 0x6c]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x100553b0
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x32
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], esi
xor ebx, ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov dword [ebp - 0xb4], ebx
cmp byte [ebp - 0xc0], 0
jne 0x10055e76
cmp byte [ebp - 0xa0], 0
jne 0x10054da5
cmp dword [ebp - 0x98], 0
jne 0x10054da5
xor eax, eax
cmp dword [ebp - 0xc8], 0
jne 0x10054da5
mov dword [ebp - 0x80], eax
mov esi, dword [ebp - 0x58]
movzx eax, word [esi + 0x22]
test ax, ax
jle 0x10054947
mov edx, 0xe
xor edi, edi
mov ebx, dword [ebp - 0xdc]
movsx ecx, word [esi + 0x20]
cmp edi, ecx
mov dword [ebp - 0x70], edx
je 0x10054911
mov ecx, dword [esi + 4]
movzx ecx, word [ecx + edx]
test cl, 0x60
jne 0x10055925
mov ecx, dword [ebp - 0x94]
mov esi, dword [ecx + edi*4]
test esi, esi
jns 0x100548da
test byte [ebp - 0x50], 1
je 0x100548a9
cmp edi, 0x1f
jbe 0x10055a5a
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x58]
mov edx, esi
push ebx
push edi
push dword [ebp - 0x74]
call fcn.10035980
add esp, 0xc
mov dword [ebp - 0xc4], 0
mov edx, dword [ebp - 0x70]
inc edi
inc ebx
movsx eax, word [esi + 0x22]
add edx, 0x10
cmp edi, eax
jl 0x1005486e
jmp 0x10054947
cmp byte [ebp - 0x7c], 0
jne 0x10055a30
mov edx, dword [ebp - 0x5c]
cmp dword [edx + 8], 0
je 0x1005490c
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.100337c0
add esp, 4
cmp eax, ebx
jne 0x100552c5
mov esi, dword [ebp - 0x58]
jmp 0x100548c8
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x100554b9
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x4b
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
jmp 0x100548c8
test byte [esi + 0x1c], 0x60
mov ecx, dword [ebp - 0x5c]
jne 0x10055e9f
test byte [ebp - 0x50], 1
mov ebx, dword [ebp - 0x68]
jne 0x10055eb7
cmp byte [ebp - 0x61], 2
je 0x10054a60
mov bl, byte [ebp - 0xac]
movzx esi, bl
lea edi, [ebp - 0x54]
mov eax, dword [ebp + 0x10]
movzx eax, al
mov edx, dword [ebp - 0x58]
push 0
push dword [ebp - 0x94]
push edi
push dword [ebp - 0x78]
push eax
push esi
push dword [ebp - 0x6c]
push dword [ebp - 0xb0]
push dword [ebp - 0xe0]
push dword [ebp - 0x74]
push dword [ebp - 0xd4]
call fcn.1004ffc0
add esp, 0x2c
cmp dword [edi], 0
jne 0x10055a8c
test bl, bl
jne 0x10055a8c
cmp dword [ebp - 0x98], 0
mov edi, dword [ebp - 0x94]
jne 0x10055504
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
push 0xffffffffffffffff
push dword [ebp - 0xd4]
push dword [ebp - 0xe0]
push dword [ebp - 0x74]
call fcn.100564b0
add esp, 0x10
cmp dword [ebp - 0xc4], 0
mov ebx, dword [ebp - 0x68]
jne 0x10055f53
cmp dword [ebp - 0x98], 1
jg 0x10055ae0
cmp byte [ebp - 0xac], 0
jne 0x10055ae0
cmp dword [ebp - 0x98], 0
jne 0x1005551e
xor eax, eax
cmp ebx, 2
sete al
add eax, eax
add eax, 4
xor esi, esi
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
push esi
push esi
push eax
push dword [ebp - 0xd4]
push dword [ebp - 0xb0]
push dword [ebp - 0xe0]
push dword [ebp - 0x74]
call fcn.1004f320
mov ecx, dword [ebp - 0x5c]
add esp, 0x1c
mov edi, dword [ebp - 0xf4]
test edi, edi
mov esi, dword [ebp - 0x60]
jne 0x10055f6f
mov edx, dword [ebp - 0xc8]
push dword [ebp - 0x78]
push dword [ebp + 0x10]
push dword [ebp - 0x6c]
push dword [ebp - 0x58]
push 2
push dword [ebp + 8]
push 0x81
call fcn.10056660
add esp, 0x1c
cmp ebx, 1
jne 0x100551a5
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x108]
neg edx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10055f8b
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 0x12], 0
jne 0x10054adc
mov eax, dword [ebp - 0x104]
or eax, dword [ecx + 0x7c]
jne 0x10054adc
cmp dword [ecx + 0x74], 0
jne 0x1005614a
test edi, edi
jne 0x10055f9d
mov ecx, dword [ebp - 0xf8]
test ecx, ecx
jne 0x10055fb3
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x94]
call fcn.1014d210
mov esi, dword [ebp - 0xd0]
mov ecx, esi
mov edx, dword [ebp - 0xa4]
call fcn.100172a0
mov edx, dword [ebp + 8]
test edx, edx
je 0x10054b24
mov ecx, esi
call fcn.10017250
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x10054b32
mov ecx, esi
call fcn.1014c9e0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
add esp, 0xfc
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x10056188
movzx esi, word [eax + 0x32]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0x9c], edx
movsx edx, si
mov dword [ebp - 0x88], edx
add eax, edx
mov edx, dword [ebp - 0x7c]
add edx, eax
inc edx
mov dword [ebp - 0xa8], edx
mov dword [ecx + 0x2c], edx
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0xd8], esi
jne 0x100553c5
xor esi, esi
cmp byte [ebp - 0x61], 2
je 0x10056251
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x84], ecx
inc ecx
mov dword [edx + 0x28], ecx
mov ecx, dword [ebp - 0x88]
add ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x88], ecx
cmp dword [ebp - 0x8c], 0
je 0x10054c00
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x1005576e
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x4b
xor edi, edi
mov dword [edx + ecx*4 + 4], edi
mov ebx, dword [ebp - 0x9c]
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], edi
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x88]
add ebx, esi
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
mov dword [ebp - 0x88], ebx
jle 0x1005574f
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4], 0x76
mov edx, dword [ebp - 0x84]
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
xor edx, edx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [ebp - 0x8c], 0
mov ebx, dword [ebp - 0xa4]
je 0x10054c8e
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x8c]
call fcn.10040940
test eax, eax
je 0x10054c8e
mov ecx, dword [ebp - 0x88]
mov word [eax + 8], cx
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x1005625d
mov ecx, dword [edi + 0x68]
mov edx, dword [edi + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf8
mov dword [ecx + edx*4 - 4], eax
cmp byte [ebp - 0xbc], 0
jne 0x100545cb
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x84]
push dword [ebp + 0xc]
push ebx
push dword [ebp + 8]
push dword [ebp - 0x8c]
call fcn.10179460
add esp, 0x10
cmp byte [ebp - 0x61], 2
mov eax, dword [ebp - 0x74]
cmove eax, dword [ebp - 0x84]
mov dword [ebp - 0x74], eax
jmp 0x100545cb
movsx eax, word [ebp - 0xd8]
mov dword [ebp - 0x88], eax
test ax, ax
jle 0x10054d14
xor edi, edi
mov eax, dword [ebp - 0x9c]
add eax, edi
mov ecx, dword [ebp - 0x8c]
mov ecx, dword [ecx + 4]
movsx ebx, word [ecx + edi*2]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
push eax
push ebx
push dword [ebp - 0x74]
call fcn.10035980
add esp, 0xc
inc edi
cmp dword [ebp - 0x88], edi
jne 0x10054ce3
cmp dword [ebp - 0x68], 0
je 0x1005618f
test esi, esi
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
je 0x10054d55
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
jne 0x10054d55
mov edi, dword [eax + 0x68]
lea esi, [esi + esi*4]
movsx edx, byte [edi + esi*4 + 1]
push dword [edi + esi*4 + 0x10]
call fcn.100056c0
add esp, 4
mov dword [edi + esi*4 + 0x10], 0
mov word [edi + esi*4], 0xb8
mov dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa8], eax
jmp 0x10054710
mov eax, edx
sub eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x78]
mov byte [ecx + eax], 0
jmp 0x10054775
add ecx, 2
movsx eax, word [esi + 0x22]
add eax, dword [ebp - 0x6c]
mov dword [edi + 0x2c], eax
mov dword [ebp - 0x70], ecx
jmp 0x10054454
inc eax
mov dword [edi + 0x2c], eax
mov dword [ebp - 0xb0], eax
jmp 0x1005447f
xor edx, edx
mov eax, 0
cmp dword [ebp - 0x98], 0
jne 0x1005559f
cmp dword [ebp - 0xc8], 0
je 0x10054ee5
xor ebx, ebx
mov esi, dword [ebp - 0xc8]
cmp byte [esi + 8], 0x81
je 0x10054de4
mov edx, ebx
mov esi, dword [esi + 0x20]
mov ebx, edx
test esi, esi
jne 0x10054dce
jmp 0x10054ee5
test byte [esi + 9], 3
je 0x10054dd4
mov dword [ebp - 0x90], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x10054e35
cmp byte [esi + 0xa], 0
mov edx, 0xffffffff
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x90]
jne 0x10054dd6
mov ecx, dword [ebp - 0x5c]
mov edx, esi
push dword [ebp + 0x10]
push dword [ebp - 0x58]
call fcn.10056d20
add esp, 8
test eax, eax
je 0x10054e2b
or ebx, dword [eax + 0x10]
mov edx, ebx
mov eax, dword [ebp - 0x90]
jmp 0x10054dd6
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
test eax, eax
jle 0x10054edb
mov eax, dword [ebp - 0xbc]
mov edx, dword [eax]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x9c], edx
test edx, edx
jle 0x10054ec4
mov eax, dword [ebp - 0xb8]
lea eax, [eax + eax*4]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + eax*4 + 0xc]
mov dword [ebp - 0xa0], eax
xor edi, edi
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + edi*8 + 8]
mov dword [ebp - 0x80], eax
xor ecx, ecx
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + ecx]
mov edx, dword [ebp - 0xa0]
movzx edx, byte [edx + ecx]
cmp al, dl
jne 0x10054eab
test eax, eax
je 0x10054dfd
inc ecx
jmp 0x10054e8b
mov al, byte [eax + 0x101af7e8]
cmp al, byte [edx + 0x101af7e8]
je 0x10054ea8
inc edi
mov edx, dword [ebp - 0x9c]
cmp edi, edx
jne 0x10054e7c
mov ecx, dword [ebp - 0xb8]
inc ecx
mov eax, ecx
mov dword [ebp - 0xb8], ecx
cmp ecx, dword [ebp - 0xcc]
jne 0x10054e60
mov edx, ebx
mov edi, dword [ebp - 0x60]
jmp 0x10054e2d
mov ecx, dword [ebp - 0x58]
cmp word [ecx + 0x22], 0
jle 0x10054fae
or edx, eax
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x80], edx
mov eax, dword [ecx + 4]
test si, si
js 0x10054f10
mov ecx, dword [ecx + 0x1c]
and ecx, 0x20
jne 0x10055bcf
mov ecx, esi
movsx edi, cx
add edi, dword [ebp - 0x70]
cmp edx, 0xffffffff
je 0x10054f88
mov ecx, esi
shl ecx, 4
movzx eax, word [eax + ecx + 0xe]
cmp esi, 0x1f
ja 0x10055935
bt edx, esi
jb 0x10054f88
and eax, 1
test ax, ax
jne 0x10054f88
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x10054f9d
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x4b
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
inc esi
mov ecx, dword [ebp - 0x58]
movsx eax, word [ecx + 0x22]
add ebx, 0x10
cmp esi, eax
mov edi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x80]
jl 0x10054efc
jmp 0x10054fae
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
push edi
push esi
push dword [ebp - 0x74]
call fcn.10035980
add esp, 0xc
jmp 0x10054f6d
mov edx, 0x4b
xor eax, eax
push eax
push edi
push eax
call fcn.10016c40
jmp 0x10054f98
cmp byte [ebp - 0xc0], 0
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x8c]
jne 0x10055001
test eax, eax
jne 0x10055001
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x1005578b
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x50
mov edx, dword [ebp - 0x6c]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp - 0xb0]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
test esi, esi
je 0x10056281
xor ebx, ebx
cmp byte [esi + 8], 0x81
je 0x10055021
mov eax, ebx
mov esi, dword [esi + 0x20]
mov ebx, eax
test esi, esi
jne 0x1005500b
jmp 0x1005484e
test byte [esi + 9], 1
je 0x10055011
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xa0], eax
test eax, eax
jne 0x1005505b
cmp byte [esi + 0xa], 0
mov eax, 0xffffffff
jne 0x10055013
mov ecx, dword [ebp - 0x5c]
mov edx, esi
push dword [ebp + 0x10]
push dword [ebp - 0x58]
call fcn.10056d20
add esp, 8
test eax, eax
je 0x10055011
or ebx, dword [eax + 0x14]
jmp 0x10055011
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
test eax, eax
jle 0x10055011
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0xbc], edx
test edx, edx
jle 0x100550e0
mov eax, dword [ebp - 0x90]
lea eax, [eax + eax*4]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + eax*4 + 0xc]
mov dword [ebp - 0x80], eax
xor edi, edi
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + edi*8 + 8]
mov dword [ebp - 0x70], eax
xor ecx, ecx
mov eax, dword [ebp - 0x70]
movzx eax, byte [eax + ecx]
mov edx, dword [ebp - 0x80]
movzx edx, byte [edx + ecx]
cmp al, dl
jne 0x100550c7
test eax, eax
je 0x10055034
inc ecx
jmp 0x100550aa
mov al, byte [eax + 0x101af7e8]
cmp al, byte [edx + 0x101af7e8]
je 0x100550c4
inc edi
mov edx, dword [ebp - 0xbc]
cmp edi, edx
jne 0x1005509b
mov ecx, dword [ebp - 0x90]
inc ecx
mov eax, ecx
mov dword [ebp - 0x90], ecx
cmp ecx, dword [ebp - 0xc0]
jne 0x10055082
jmp 0x10055011
mov ecx, esi
mov ebx, dword [ebp - 0x5c]
jmp 0x1005429f
xor ecx, ecx
inc ecx
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x10055151
xor esi, esi
mov bl, byte [ebp - 0xac]
mov edi, dword [eax + esi*8 + 0x24]
mov edx, dword [ebp - 0x94]
cmp dword [edx + edi*4], 0
jns 0x100554e5
test bl, bl
je 0x1005514c
mov edx, dword [ebp - 0x58]
movsx edx, word [edx + 0x20]
cmp edi, edx
je 0x100554e5
inc esi
cmp ecx, esi
jne 0x10055125
mov eax, dword [eax + 4]
test eax, eax
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
je 0x1005423e
jmp 0x10055116
movzx ebx, byte [esi + edi]
movzx edx, byte [ecx + edi]
cmp bl, dl
jne 0x10055177
test ebx, ebx
je 0x10055193
inc edi
jmp 0x10055164
movzx ebx, byte [ebx + 0x101af7e8]
movzx edx, byte [edx + 0x101af7e8]
sub ebx, edx
je 0x10055174
xor ecx, ecx
inc ecx
mov dword [ebp - 0x68], ecx
test ebx, ebx
jne 0x10055151
mov dword [ebp - 0x98], 2
xor ecx, ecx
inc ecx
mov dword [ebp - 0x68], ecx
jmp 0x10055151
cmp ebx, 2
jne 0x10055616
mov ecx, dword [esi + 0xc]
mov ebx, dword [ebp - 0x78]
not ebx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10055498
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + ebx*4], eax
mov ecx, dword [ebp - 0xec]
call fcn.10031790
jmp 0x10054a9e
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0x78]
test eax, eax
cmove eax, ebx
mov byte [eax + 0x14], 1
cmp cl, 2
jne 0x10055597
mov dword [ebp - 0x68], 2
test edx, edx
js 0x10054677
cmp dword [ebp - 0x74], edx
je 0x10054677
mov eax, edx
sub eax, dword [ebp - 0xb4]
mov dword [ebp - 0x80], edx
xor edx, edx
mov ecx, dword [ebp - 0x78]
cmp byte [ecx + eax], 0
sete dl
add edx, edx
mov dword [ebp - 0x68], edx
mov edx, dword [ebp - 0x80]
jmp 0x10054677
mov eax, dword [ebx + 0x38]
dec eax
mov dword [ebp - 0x78], eax
mov dword [ebx + 0x38], eax
jmp 0x100547d0
mov eax, edx
not eax
sar eax, 0x1f
mov ecx, dword [ebp - 0x100]
add ecx, eax
test ecx, ecx
jle 0x1005477f
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jle 0x10055807
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov byte [eax + ecx*4], 0xf
xorps xmm0, xmm0
movups xmmword [eax + ecx*4 + 1], xmm0
mov dword [eax + ecx*4 + 0x10], 0
xor eax, eax
mov ecx, ebx
mov edx, dword [ebp - 0x58]
push eax
push eax
push dword [ebp - 0x78]
push dword [ebp - 0xb4]
push eax
push 0x71
call fcn.1004f080
add esp, 0x18
test esi, esi
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x90]
je 0x100547ae
mov eax, dword [edi + 0x6c]
lea ecx, [eax - 1]
cmp ecx, esi
jne 0x100557aa
mov dword [edi + 0x6c], esi
jmp 0x100557c2
test esi, esi
je 0x100552d3
test byte [esi + 6], 0x40
jne 0x10055489
mov dword [ebp - 0xa0], 0x51
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x100557cd
lea esi, [edx + 1]
mov dword [ecx + 0x6c], esi
mov esi, dword [ecx + 0x68]
lea edx, [edx + edx*4]
mov ecx, dword [ebp - 0xa0]
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 0x1005490c
mov ecx, esi
call fcn.10042310
mov edx, dword [ebp - 0xfc]
jmp 0x100543ee
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x74], ecx
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xb4]
mov dword [eax + 0x28], ecx
jmp 0x10053d5e
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x78], eax
mov edi, dword [ebp - 0x60]
xor ebx, ebx
jmp 0x10054812
mov bl, byte [eax]
test bl, bl
je 0x10055800
lea edx, [eax + 1]
xor eax, eax
movzx esi, bl
movzx esi, byte [esi + 0x101af7e8]
add esi, eax
imul eax, esi, 0x9e3779b1
mov bl, byte [edx]
inc edx
test bl, bl
jne 0x1005537e
xor edx, edx
div dword [ecx + 0x38]
lea ecx, [edi + edx*8]
lea esi, [edi + edx*8]
add esi, 4
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x70]
jmp 0x10054257
mov ecx, edi
mov edx, 0x32
push 0
push esi
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x10055368
mov dword [ebp - 0x84], 0
mov esi, 0
cmp dword [ebp - 0x7c], 0
jne 0x10055fd1
push 0x10
push dword [ebp - 0xcc]
push dword [ebp + 0xc]
mov ebx, dword [ebp - 0x5c]
push ebx
call fcn.10040dd0
add esp, 0x10
mov dword [ebp - 0xc4], 0
xor eax, eax
inc eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0xec], 0
jmp 0x10054677
mov ecx, edi
mov edi, eax
mov eax, dword [eax]
mov dword [ecx + 0x148], eax
jmp 0x10053da5
mov ecx, edi
mov edx, 0x4b
push dword [ebp - 0x6c]
push dword [ebp - 0xb8]
push 0
call fcn.10016c40
add esp, 0xc
jmp 0x1005455e
mov ecx, edi
mov edx, 0x76
push dword [ebp - 0xb8]
push 0
push ebx
call fcn.10016c40
add esp, 0xc
mov esi, eax
mov dword [ebp - 0x9c], 0
jmp 0x100545b1
mov ecx, edi
mov edx, 0x87
push 0
push dword [ebp - 0x6c]
push dword [ebp - 0x74]
call fcn.10016c40
add esp, 0xc
jmp 0x100546be
mov dword [ebp - 0xa0], 0x50
jmp 0x100552dd
mov edx, esi
push ebx
call fcn.10032440
add esp, 4
jmp 0x100551cb
mov ecx, edi
mov edi, eax
mov eax, dword [eax]
mov dword [ecx + 0x14c], eax
jmp 0x10053da5
mov edx, 0x4b
xor eax, eax
push eax
push ebx
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x100548c8
mov eax, ecx
shl eax, 4
test byte [edx + eax + 0xe], 1
je 0x100542fb
jmp 0x10056014
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x58]
mov esi, dword [edx]
test esi, esi
je 0x1005633f
test ecx, ecx
je 0x1005519d
xor edi, edi
jmp 0x10055164
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
push esi
push edi
push 0
push dword [ebp - 0x6c]
call fcn.1004f8b0
add esp, 0x10
jmp 0x100549d2
mov ecx, dword [ebp - 0x5c]
mov eax, edi
mov edi, dword [ebp - 0x58]
mov edx, edi
push esi
push eax
mov ebx, dword [ebp - 0xb0]
push ebx
xor eax, eax
push eax
call fcn.1004f8b0
add esp, 0x10
xor eax, eax
cmp dword [ebp - 0x68], 2
sete al
lea eax, [eax + eax + 4]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x5c]
mov edx, edi
xor eax, eax
push eax
xor eax, eax
push eax
push dword [ebp - 0x70]
push dword [ebp - 0xd4]
push ebx
mov ebx, dword [ebp - 0x68]
push dword [ebp - 0xe0]
push dword [ebp - 0x74]
call fcn.1004f320
add esp, 0x1c
mov ecx, dword [ebp - 0x5c]
mov edx, edi
push esi
push dword [ebp - 0x94]
push dword [ebp - 0x6c]
push dword [ebp + 8]
call fcn.1005bb20
mov ecx, dword [ebp - 0x5c]
add esp, 0x10
jmp 0x10054a60
mov dword [ebp - 0x68], ecx
jmp 0x10054677
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
call fcn.1005b960
xor edx, edx
jmp 0x10054db9
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10055822
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x80
mov edx, dword [ebp - 0x84]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp - 0xb8]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [ebp - 0x6c]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x68], 0
jmp 0x10054706
mov ecx, dword [esi + 0xc]
mov ebx, dword [ebp - 0x78]
not ebx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1005634a
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + ebx*4], eax
mov ebx, dword [ebp - 0xb4]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10055845
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x27
mov edx, dword [ebp - 0x84]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], ebx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10054a9e
cmp dword [ebp - 0x8c], 0
sete al
mov ecx, dword [ebp - 0x7c]
xor cl, 1
test al, cl
je 0x1005635a
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
mov esi, dword [ebp - 0x84]
jle 0x10055862
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x24
mov dword [ecx + eax*4 + 4], esi
mov edx, dword [ebp - 0xcc]
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 eax, dword [ebx + 0x38]
dec eax
mov dword [ebp - 0x78], eax
mov dword [ebx + 0x38], eax
mov ebx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ebx
mov esi, dword [ebp - 0x74]
jle 0x1005587f
lea eax, [ebx + 1]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4], 0x87
mov edx, dword [ebp - 0x84]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x6c]
mov dword [eax + ecx*4 + 8], edx
xor edx, edx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x100558a0
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x1f
mov dword [ecx + eax*4 + 4], esi
mov edx, dword [ebp - 0x78]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [ebp - 0x6c]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x10054812
mov ecx, edi
mov edx, 0x76
push 0
push ebx
push dword [ebp - 0x84]
call fcn.10016c40
add esp, 0xc
mov esi, eax
jmp 0x10054c45
mov ecx, edi
mov edx, 0x4b
push eax
push dword [ebp - 0x9c]
push 0
call fcn.10016c40
add esp, 0xc
jmp 0x10054c00
mov ecx, edi
mov edx, 0x50
push 0
push dword [ebp - 0xb0]
push dword [ebp - 0x6c]
call fcn.10016c40
add esp, 0xc
jmp 0x10055001
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x10056415
lea ecx, [esi + esi*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x90]
jmp 0x100547ae
mov edx, dword [ebp - 0xa0]
push 0
push ebx
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x1005490c
mov ecx, edi
mov edi, eax
mov eax, dword [eax]
mov dword [ecx + 0x144], eax
jmp 0x10053da5
inc dword [edi + 0x13c]
jmp 0x10053e64
xor eax, eax
jmp 0x10055397
xor eax, eax
mov ecx, edi
mov edx, 0xf
push eax
push eax
push eax
call fcn.10016c40
add esp, 0xc
mov esi, eax
jmp 0x10055281
mov ecx, edi
mov edx, 0x80
push dword [ebp - 0x6c]
push dword [ebp - 0xb8]
push dword [ebp - 0x84]
call fcn.10016c40
add esp, 0xc
jmp 0x10055603
mov ecx, esi
mov edx, 0x27
push 0
push ebx
push dword [ebp - 0x84]
call fcn.10016c40
add esp, 0xc
jmp 0x10054a9e
mov ecx, edi
mov edx, 0x24
push 0
push dword [ebp - 0xcc]
push esi
call fcn.10016c40
add esp, 0xc
jmp 0x100556ca
mov ecx, edi
mov edx, 0x87
push 0
push dword [ebp - 0x6c]
push dword [ebp - 0x84]
call fcn.10016c40
add esp, 0xc
mov ebx, eax
jmp 0x10055711
mov ecx, edi
mov edx, 0x1f
push dword [ebp - 0x6c]
push dword [ebp - 0x78]
push esi
call fcn.10016c40
add esp, 0xc
jmp 0x10054812
mov dl, byte [edx + 0x101af7e8]
cmp dl, byte [ecx + 0x101af7e8]
je 0x1005401b
jmp 0x10053fd7
mov eax, dword [ebp - 0x80]
mov esi, dword [eax]
cmp dword [ebp - 0x8c], 0
jne 0x10055c0e
mov ecx, esi
call fcn.10161510
test eax, eax
je 0x10055c0e
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
mov dword [ebp - 0xe4], eax
mov ebx, str.ROWID
mov al, 1
mov dword [ebp - 0xc0], eax
xor eax, eax
dec eax
mov dword [ebp - 0x70], eax
mov edi, dword [ebp - 0x6c]
mov dword [ebp - 0xe8], edi
mov esi, dword [ebp - 0x58]
jmp 0x1005407e
shl ecx, 0x1a
sar ecx, 0x1f
add ebx, ecx
mov esi, dword [ebp - 0x58]
jmp 0x100548cb
test al, 1
je 0x10054f3d
jmp 0x10054f88
push dword [ebp - 0x98]
push str.cannot_UPDATE_generated_column___s_
push dword [ebp - 0x5c]
call fcn.100463a0
add esp, 0xc
jmp 0x10054af2
xor ecx, ecx
mov edi, dword [ebp - 0x6c]
jmp 0x10054068
mov eax, dword [ecx]
mov dword [ebp - 0xe4], eax
mov al, 1
mov dword [ebp - 0xc0], eax
mov edi, dword [ebp - 0x6c]
mov dword [ebp - 0xe8], edi
mov eax, dword [ebp - 0x94]
jmp 0x1005405e
cmp byte [eax + 0xb1], 0
jne 0x10054091
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 0xd8], 0
jne 0x10054091
mov edx, dword [ebp - 0xd0]
mov edx, dword [edx + 0x10]
mov edi, esi
mov esi, dword [ebp - 0x90]
shl esi, 4
mov esi, dword [edx + esi]
mov edx, dword [edi]
mov dword [ebp - 0xac], edx
mov edx, dword [ebp - 0x5c]
mov edi, dword [edx + 0x100]
mov eax, dword [eax + 0x168]
mov dword [ebp - 0x98], eax
call dword [section..00cfg]
push edi
push esi
push ebx
push dword [ebp - 0xac]
push 0x17
push dword [ebp - 0x98]
call ecx
add esp, 0x18
cmp eax, 1
je 0x10055c29
test eax, 0xfffffffd
jne 0x10055c35
cmp eax, 2
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x6c]
jne 0x10054091
mov ecx, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0xffffffff
jmp 0x10054091
cmp byte [ebp - 0x61], 2
movsx ecx, word [ebp - 0xd8]
cmove ecx, eax
add esi, ecx
mov ecx, dword [ebp - 0x60]
mov edx, 0x5e
push ebx
push esi
push dword [ebp - 0x84]
call fcn.1002fb80
jmp 0x100557dc
mov eax, dword [ebp - 0x80]
bt eax, edi
jb 0x100548a9
xor eax, eax
mov ecx, dword [ebp - 0x60]
mov edx, 0x4b
push eax
push ebx
push eax
jmp 0x10055a50
mov ecx, dword [ebp - 0x5c]
mov edx, esi
call fcn.10171270
test eax, eax
je 0x10053cbc
jmp 0x10054b03
cmp dword [ebp - 0x8c], 0
je 0x1005602f
mov edi, dword [ebp - 0x60]
mov ecx, edi
mov edx, 0x1c
push dword [ebp - 0xa8]
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x100549bf
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0x88]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x100549bf
xor eax, eax
mov ecx, dword [ebp - 0x60]
mov edx, 0x82
push eax
push eax
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
jmp 0x10054a1b
mov eax, dword [edi + 0x28]
mov edx, dword [eax + esi*2]
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], 0x10179900
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x14], ecx
test edx, edx
je 0x10055b34
lea ecx, [ebp - 0x2c]
call fcn.1014d480
lea eax, [ebp - 0x2c]
movzx eax, word [eax + 0x14]
mov ecx, eax
and ecx, 0xfffffffd
cmp byte [ebp - 0xc0], 0
cmovne ecx, eax
test cx, cx
jne 0x10055b51
movzx eax, word [edi + 0x32]
jmp 0x100541c5
mov esi, dword [ebp - 0x5c]
mov ecx, dword [esi + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x2c], eax
movzx edx, word [edi + 0x34]
add ecx, edx
inc ecx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x10], 0xb
jne 0x1005420d
cmp byte [edi + 0x36], 5
jne 0x1005420d
mov dword [ebp - 0x54], 1
jmp 0x1005420d
xorps xmm0, xmm0
lea esi, [ebp - 0x2c]
movups xmmword [esi], xmm0
xor eax, eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], eax
mov dword [esi + 4], 0x10179900
mov eax, dword [ebp - 0x94]
mov dword [esi + 0x18], eax
mov ecx, esi
call fcn.1014d480
mov eax, dword [esi + 0x14]
mov ecx, eax
and ecx, 0xfffffffd
cmp byte [ebp - 0xc0], 0
cmovne ecx, eax
test cx, cx
je 0x10054195
jmp 0x100541fa
xor edx, edx
xor ecx, ecx
test si, si
je 0x10055bec
movzx edi, word [eax + edx + 0xe]
bt edi, 5
sbb cx, 0xffff
add edx, 0x10
cmp ebx, edx
jne 0x10055bd8
movsx edx, si
shl edx, 4
test byte [eax + edx + 0xe], 0x20
je 0x10055c06
mov edx, esi
sub edx, ecx
mov ecx, dword [ebp - 0x58]
add dx, word [ecx + 0x24]
mov ecx, edx
mov edx, dword [ebp - 0x80]
jmp 0x10054f12
push esi
push str.no_such_column:__s
mov esi, dword [ebp - 0x5c]
push esi
call fcn.100463a0
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x10054af2
mov esi, 0x17
mov eax, str.not_authorized
jmp 0x10055c3d
xor esi, esi
inc esi
mov eax, str.authorizer_malfunction
push eax
mov edi, dword [ebp - 0x5c]
push edi
call fcn.100463a0
add esp, 8
mov dword [edi + 0xc], esi
jmp 0x10054af2
mov al, 1
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x6c]
jmp 0x1005405e
mov eax, dword [ebp - 0xa4]
lea edx, [eax + 8]
mov ecx, dword [ebp - 0x5c]
call fcn.10171180
test eax, eax
jne 0x10054b03
jmp 0x10053c09
mov edi, 0xffff8000
jmp 0x10053c2f
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x7c], eax
jmp 0x10053ca5
movzx eax, word [esi + 0x22]
test ax, ax
jle 0x10054110
xor ebx, ebx
mov esi, 0xe
xor edi, edi
mov eax, dword [ebp - 0x94]
cmp dword [eax + ebx*4], 0
js 0x10055cd3
inc ebx
mov eax, dword [ebp - 0x58]
movsx eax, word [eax + 0x22]
add esi, 0x10
cmp ebx, eax
jl 0x10055cb3
jmp 0x10055d5f
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 4]
test byte [eax + esi], 0x60
je 0x10055cbf
movzx eax, word [eax + esi - 2]
test eax, eax
je 0x10055cf1
mov ecx, dword [ebp - 0x58]
cmp byte [ecx + 0x2b], 0
je 0x10055d19
xor eax, eax
mov ecx, eax
and ecx, 0xfffffffd
cmp byte [ebp - 0xc0], 0
cmovne ecx, eax
test cx, cx
je 0x10055cbf
mov eax, dword [ebp - 0x94]
mov dword [eax + ebx*4], 0x1869f
xor edi, edi
inc edi
jmp 0x10055cbf
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x10055cf1
cmp dword [ecx], eax
jl 0x10055cf1
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 - 0xc]
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], 0x10179900
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x14], ecx
test edx, edx
je 0x10055cf3
lea ecx, [ebp - 0x2c]
call fcn.1014d480
movzx eax, word [ebp - 0x18]
jmp 0x10055cf3
test edi, edi
mov ecx, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
jne 0x10055ca1
jmp 0x10054110
mov dword [ebp - 0x54], 1
jmp 0x10054153
push dword [ebp - 0xb0]
push 1
push dword [ebp - 0x78]
mov esi, edx
call sub.VCRUNTIME140.dll_memset
mov edx, esi
add esp, 0xc
jmp 0x10054397
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0xb8], 0
mov edi, dword [ebp - 0x5c]
mov bl, byte [ebp - 0x61]
jmp 0x10054491
mov eax, dword [esi]
mov ecx, dword [edi + 0x100]
mov dword [ebp - 0xf0], ecx
mov dword [edi + 0x100], eax
cmp dword [ebp - 0x7c], 0
jne 0x1005604d
mov edi, dword [ebp - 0x5c]
mov ecx, edi
mov ebx, dword [ebp - 0x58]
mov edx, ebx
push dword [ebp - 0x74]
mov esi, dword [ebp + 0xc]
push esi
call fcn.10178bb0
mov edx, esi
mov esi, ebx
add esp, 8
mov dword [ebp - 0xf8], edi
jmp 0x100544bb
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xbc], 0
jmp 0x100544d3
mov ecx, edi
mov edx, dword [ebp - 0xa4]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x94]
push dword [ebp - 0xe4]
push dword [ebp + 8]
push esi
call fcn.10178ec0
add esp, 0x18
jmp 0x10054ae4
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x7c], 0
je 0x100560ed
mov esi, dword [ebp - 0x58]
jmp 0x1005450a
cmp byte [ebp - 0xbc], 0
je 0x10056068
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0xe4]
push dword [ebp - 0xb0]
call fcn.10059020
add esp, 4
jmp 0x1005608a
mov edi, ecx
mov edx, dword [ebp - 0xdc]
push esi
call fcn.101796e0
mov ecx, edi
add esp, 4
jmp 0x10054954
mov edi, ecx
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x58]
mov edx, esi
push dword [ebp - 0xdc]
call fcn.10052360
add esp, 4
mov ecx, edi
mov edx, dword [ebp - 0xc8]
push dword [ebp - 0x78]
push dword [ebp + 0x10]
push dword [ebp - 0x6c]
push esi
push 1
push dword [ebp + 8]
push 0x81
call fcn.10056660
mov ecx, edi
add esp, 0x1c
cmp byte [ebp - 0x61], 2
je 0x10054a60
cmp dword [ebp - 0x8c], 0
je 0x10056288
mov esi, dword [ebp - 0x60]
mov ecx, esi
mov edx, 0x1c
push dword [ebp - 0xa8]
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x57], 0
jne 0x100562a1
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0x88]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x100562a1
xor eax, eax
mov ecx, dword [ebp - 0x60]
mov edx, 0x8f
push eax
push eax
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
jmp 0x10054a01
mov ecx, esi
mov edx, 0x56
push 0
push 1
push edi
call fcn.1002fb80
mov ecx, dword [ebp - 0x5c]
add esp, 0xc
jmp 0x10054a71
mov eax, edx
mov edx, esi
push eax
call fcn.10032440
add esp, 4
jmp 0x10054abe
mov ecx, esi
mov edx, edi
push str.rows_updated
call fcn.10178d40
add esp, 4
jmp 0x10054ae4
mov eax, dword [ebp - 0xf0]
mov dword [ecx + 0x100], eax
jmp 0x10054af2
movsx eax, word [ebp - 0xd8]
mov dword [ebp - 0x88], eax
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0x78]
test eax, eax
cmove eax, ebx
mov byte [eax + 0x14], 1
mov dword [ebp - 0x68], 0
mov al, 1
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xec], 0
jmp 0x10054710
test edx, edx
je 0x10056014
inc ebx
mov eax, dword [ebp - 0x6c]
jmp 0x1005431f
mov eax, dword [ebp - 0xc4]
cmp byte [eax + 0x1a], 0
jne 0x1005623c
xor eax, eax
inc eax
mov dword [ebp - 0x68], eax
jmp 0x10054351
mov ecx, dword [ebp - 0x60]
mov edx, 0x1f
push dword [ebp - 0x6c]
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
jmp 0x100549bf
mov dword [ebp - 0xbc], 0
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0xf8], edi
mov esi, dword [ebp - 0x58]
jmp 0x100544d3
mov ecx, dword [ebp - 0x60]
mov edx, 0x5e
push dword [ebp - 0xb0]
push dword [ebp - 0xe8]
push dword [ebp - 0x84]
call fcn.1002fb80
add esp, 0xc
xor eax, eax
mov edi, dword [ebp - 0x60]
mov ecx, edi
mov edx, 0xd
push eax
push eax
push dword [ebp - 0xb0]
call fcn.1002fb80
add esp, 0xc
jmp 0x10054825
mov ecx, edi
mov edx, 0x1c
push dword [ebp - 0xa8]
push dword [ebp - 0xcc]
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x100547bd
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0x88]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x100547bd
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x12], 0
jne 0x10055e6e
cmp dword [ebp + 0x14], 0
jne 0x10055e6e
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x9d], 0
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp - 0x60]
jne 0x1005450d
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ebp - 0xf4], eax
mov dword [ecx + 0x2c], eax
mov ecx, edi
mov edx, 0x47
xor eax, eax
push eax
push dword [ebp - 0xf4]
xor eax, eax
push eax
call fcn.1002fb80
add esp, 0xc
jmp 0x1005450d
call fcn.10178db0
jmp 0x10054adc
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x74], eax
xor ebx, ebx
jmp 0x10053d4e
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x8c], 0
test ecx, ecx
jne 0x10053e02
jmp 0x10053d12
xor esi, esi
jmp 0x10054b59
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x8c]
call fcn.10042250
mov dword [ebp - 0x68], eax
mov edi, dword [ebp - 0x60]
mov ecx, edi
mov edx, 0x61
push dword [ebp - 0xa8]
mov esi, dword [ebp - 0x88]
push esi
mov ebx, dword [ebp - 0x9c]
push ebx
call fcn.1002fb80
add esp, 0xc
mov ecx, edi
mov edx, eax
push esi
push dword [ebp - 0x68]
call fcn.1003a120
add esp, 8
mov ecx, edi
mov edx, 0x8a
push ebx
push dword [ebp - 0xa8]
push dword [ebp - 0x84]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [edi]
mov dword [ebp - 0x7c], 0
cmp byte [ecx + 0x57], 0
jne 0x10056223
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0x88]
mov dword [ecx + eax*4 + 0x10], edx
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x88], 0
mov ebx, dword [ebp - 0x5c]
jmp 0x10054710
mov dword [ebp - 0x98], 2
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
jmp 0x10054149
mov ecx, dword [ebp - 0x58]
movsx esi, word [ecx + 0x22]
jmp 0x10054b9e
cmp dword [ecx + 0x208], 0
jne 0x10054c8e
dec dword [eax]
jne 0x10054c8e
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.1014c8d0
jmp 0x10054c8e
xor eax, eax
jmp 0x1005484e
mov ecx, dword [ebp - 0x60]
mov edx, 0x1f
push dword [ebp - 0x6c]
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebp - 0x58]
movzx eax, word [eax + 0x22]
test ax, ax
jle 0x10056312
xor esi, esi
mov edi, 0xe
mov ebx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx + 4]
movzx ecx, word [ecx + edi]
test cl, 0x60
je 0x100562df
shl ecx, 0x1a
sar ecx, 0x1f
add ebx, ecx
inc esi
inc ebx
movsx ecx, ax
add edi, 0x10
cmp esi, ecx
jl 0x100562ba
jmp 0x10056312
mov ecx, dword [ebp - 0x94]
cmp dword [ecx + esi*4], 0
jns 0x100562d1
mov ecx, dword [ebp - 0x58]
movsx ecx, word [ecx + 0x20]
cmp esi, ecx
je 0x100562d1
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
push ebx
push esi
push dword [ebp - 0x74]
call fcn.10035980
add esp, 0xc
mov eax, dword [ebp - 0x58]
movzx eax, word [eax + 0x22]
jmp 0x100562d1
mov eax, dword [ebp - 0x58]
test byte [eax + 0x1c], 0x60
mov ecx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x68]
je 0x10054961
mov esi, ecx
mov edx, dword [ebp - 0xdc]
push dword [ebp - 0x58]
call fcn.101796e0
mov ecx, esi
add esp, 4
jmp 0x10054961
xor ebx, ebx
neg ecx
sbb ebx, ebx
jmp 0x10055189
mov edx, esi
push ebx
call fcn.10032440
add esp, 4
jmp 0x10055633
mov eax, dword [ebx + 0x38]
dec eax
mov dword [ebp - 0x78], eax
mov dword [ebx + 0x38], eax
mov ecx, edi
mov edx, 0x24
push 0
push dword [ebp - 0xcc]
push dword [ebp - 0x84]
call fcn.1002fb80
add esp, 0xc
mov ebx, dword [edi + 0x6c]
cmp byte [ebp - 0x7c], 0
je 0x1005641f
cmp byte [ebp - 0x61], 2
je 0x1005645e
cmp dword [ebp - 0x8c], 0
je 0x10056479
movsx esi, word [ebp - 0xd8]
test si, si
jle 0x100563d8
xor edi, edi
mov eax, dword [ebp - 0x9c]
add eax, edi
mov ecx, dword [ebp - 0x60]
mov edx, 0x5e
push eax
push edi
push dword [ebp - 0x84]
call fcn.1002fb80
add esp, 0xc
inc edi
cmp esi, edi
jne 0x100563b3
mov edi, dword [ebp - 0x60]
mov ecx, edi
mov edx, 0x1c
push dword [ebp - 0x9c]
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x1005645e
mov edi, dword [ebp - 0x60]
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], esi
jmp 0x10054812
mov ecx, 0x101f2320
jmp 0x100557bf
mov esi, dword [ebp - 0x60]
mov ecx, esi
mov edx, 0x86
push 0
mov edi, dword [ebp - 0xa8]
push edi
push dword [ebp - 0x84]
call fcn.1002fb80
add esp, 0xc
mov ecx, esi
mov edx, 0x1c
push edi
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x57], 0
je 0x10056466
mov edi, dword [ebp - 0x60]
jmp 0x10054812
mov edi, dword [ebp - 0x60]
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
jmp 0x10055742
mov edi, dword [ebp - 0x60]
mov ecx, edi
mov edx, 0x87
push 0
mov esi, dword [ebp - 0x6c]
push esi
push dword [ebp - 0x84]
call fcn.1002fb80
add esp, 0xc
mov ecx, edi
mov edx, 0x1f
push esi
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call fcn.1002fb80
jmp 0x100558b3