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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
push ebx
push esi
mov esi, dword [ecx]
lea eax, [ecx + 0x148]
mov dword [esp + 0x6c], eax
push edi
lea edi, [ecx + 0x2e0]
mov dword [esp + 0x48], ecx
mov eax, dword [esi]
mov dword [esp + 0x80], eax
lea eax, [edx + edx*4]
shl eax, 4
add edi, eax
mov ebx, dword [esi + 8]
mov dword [esp + 0x54], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x68], ebx
mov eax, dword [edi + 0x40]
mov dword [esp + 0x20], eax
movzx eax, byte [edi + 0x2c]
mov dword [esp + 0x64], edi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x48]
shl ecx, 4
mov eax, dword [eax + 4]
add eax, 8
add eax, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x30]
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x2c], eax
xor eax, eax
test edx, edx
jle 0x4e0389
add ecx, 0x48
mov esi, dword [esp + 0x2c]
cmp dword [ecx], esi
mov esi, dword [esp + 0x3c]
je 0x4e05b5
inc eax
add ecx, 4
cmp eax, edx
jl 0x4e0371
xorps xmm0, xmm0
movlpd qword [esp + 0x88], xmm0
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
not ecx
not edx
and ecx, dword [ebp + 8]
and edx, dword [ebp + 0xc]
mov dword [edi + 0x48], ecx
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x4c], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x54]
call fcn.00681920
and eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
test byte [eax + 0x24], 0x40
je 0x4e03e9
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], 1
test byte [eax + 0x22], 0x20
je 0x4e03f1
mov dword [esp + 0x30], 0
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x14], edx
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x10], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x4e0432
mov edx, dword [edx + 0x70]
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x14]
push 0
push eax
mov ecx, dword [ecx]
call fcn.004811b0
mov edx, dword [esp + 0x1c]
add esp, 8
mov ecx, dword [esp + 0x10]
mov dword [edx + 0x70], eax
mov eax, dword [edx + 0x70]
test eax, eax
je 0x4e0440
mov dword [eax + ecx*4], 0xffffffff
not ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x24], ecx
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x84], edx
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 1]
test edx, eax
jne 0x4e048f
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x70]
mov ecx, dword [ecx]
push 0
push eax
call fcn.004811b0
mov ecx, dword [esp + 0x2c]
add esp, 8
mov edx, dword [esp + 0x84]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x4e049d
mov dword [eax + edx*4], 0xffffffff
cmp byte [edi + 0x2c], 0
not edx
mov dword [esp + 0x84], edx
mov dword [edi + 0x18], edx
jbe 0x4e0518
mov eax, dword [esp + 0x44]
test byte [eax + 0x24], 8
je 0x4e0518
mov eax, dword [esi + 0x48]
inc eax
mov dword [esi + 0x48], eax
mov dword [edi], eax
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x24], ecx
cmp dword [eax + 0x54], ecx
jg 0x4e04e4
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
jne 0x4e0518
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x78]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x88], eax
test al, 0x10
je 0x4e060f
mov eax, dword [edx + 0x1c]
mov esi, dword [ebx + 0x20]
mov ecx, esi
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4e0557
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
jne 0x4e058e
mov ecx, dword [ebx + 0x20]
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
cmp dword [eax + 0x54], esi
jg 0x4e05cf
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
je 0x4e05cf
mov esi, 1
mov byte [edi + 0x2d], 0xe
mov dword [edi + 0x34], esi
jmp 0x4e1948
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x4e03a3
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [edi + 0x34], esi
mov byte [edi + 0x2d], 0xe
jmp 0x4e1948
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x24]
test eax, 0x400
je 0x4e0853
movzx eax, word [edx + 0x28]
inc dword [esi + 0x64]
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x18], eax
add eax, 2
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x10], eax
cmp ebx, ecx
jg 0x4e0655
add eax, ebx
sub ecx, ebx
mov dword [esi + 0x38], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x3c], eax
jmp 0x4e0664
mov eax, dword [esi + 0x48]
lea ecx, [eax + 1]
add eax, ebx
mov dword [esp + 0x10], ecx
mov dword [esi + 0x48], eax
cmp dword [esp + 0x18], 0
mov eax, dword [edi + 0xc]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
jbe 0x4e06cd
add ecx, 2
xor ebx, ebx
mov dword [esp + 0x14], ecx
nop
mov eax, dword [edx + 0x30]
mov edx, dword [eax + ebx*4]
test edx, edx
je 0x4e06be
test byte [edx + 0x12], 1
lea eax, [ebx + ecx]
push eax
mov ecx, esi
je 0x4e06ad
push dword [esp + 0x3c]
push ebx
push edi
call fcn.004dfcf0
mov eax, dword [edi + 0x10]
add esp, 0x10
mov dword [esp + 0x1c], eax
jmp 0x4e06ba
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.004b4400
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x4e0680
mov ebx, dword [esp + 0x68]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebx + 0x20]
mov edx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x24], ecx
cmp dword [eax + 0x54], ecx
jg 0x4e06f7
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
jne 0x4e072e
mov edx, dword [ebx + 0x20]
mov ecx, dword [esp + 0x24]
lea eax, [edx + 1]
mov edx, dword [esp + 0x78]
mov dword [ebx + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
mov edx, ecx
mov dword [esp + 0x24], ecx
cmp dword [eax + 0x54], ecx
jg 0x4e0751
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
jne 0x4e0789
mov edx, dword [ebx + 0x20]
mov ecx, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x20]
mov edx, 0xfffffff5
mov eax, 0xfffffffe
cmp byte [ecx + 0x1c], 0
cmovne eax, edx
mov edx, 0xc
push eax
push dword [ecx + 0x20]
mov ecx, ebx
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x3c]
call fcn.0049d9e0
mov eax, dword [esp + 0x34]
add esp, 0x14
cmp dword [esp + 0x18], 0
mov byte [eax + 0x1c], 0
jbe 0x4e07ff
xor esi, esi
mov ebx, eax
cmp esi, 0x10
jge 0x4e07f7
mov ax, word [ebx + 0x1e]
mov cx, si
shr ax, cl
test al, 1
je 0x4e07f0
mov edx, dword [ebx + 0x30]
mov ecx, edi
mov edx, dword [edx + esi*4]
call fcn.004dfbf0
inc esi
cmp esi, dword [esp + 0x18]
jl 0x4e07d0
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov edx, 0x9f
mov eax, dword [esp + 0x2c]
push dword [esp + 0xc]
mov dword [edi + 0x30], eax
mov eax, 0x9a
cmp byte [ecx + 0x26], 0
mov ecx, esi
cmovne eax, edx
mov byte [edi + 0x2d], al
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x34], eax
mov edi, dword [esp + 0x14]
mov edx, edi
call fcn.004b2d30
mov eax, dword [esp + 0x10]
add esp, 4
cmp eax, dword [esi + 0x38]
jle 0x4e0847
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edi
mov ecx, esi
call fcn.004b2d90
jmp 0x4e1948
test al, 5
setne cl
bt eax, 8
setb al
test al, cl
je 0x4e08f9
mov eax, dword [edx + 0x30]
mov ecx, esi
mov edx, dword [eax]
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
push 0
push edi
call fcn.004dfcf0
mov edx, dword [esp + 0x34]
add esp, 0x10
mov dword [esp + 0xc], eax
cmp eax, edx
je 0x4e089f
mov ecx, esi
call fcn.004b5490
mov eax, dword [esp + 0xc]
mov esi, dword [edi + 0x10]
mov edx, 0x26
push esi
push eax
mov ecx, ebx
call fcn.0049d7a0
push dword [esp + 0x14]
mov edx, 0x49
mov ecx, ebx
push esi
push dword [esp + 0x3c]
call fcn.0049d670
mov edx, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x3c]
push 1
call fcn.004b2d30
mov edx, dword [esp + 0x30]
add esp, 4
mov ecx, dword [esp + 0x3c]
push dword [esp + 0xc]
push 0xffffffffffffffff
call fcn.004b2bd0
add esp, 8
mov byte [edi + 0x2d], 0x9f
jmp 0x4e1948
mov ecx, dword [edx + 0x24]
mov eax, ecx
and eax, 0x102
cmp eax, 0x102
jne 0x4e0aca
xor esi, esi
mov dword [esp + 0x18], 0x9f
xor eax, eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x1c], esi
test cl, 0x20
je 0x4e0940
mov eax, dword [edx + 0x30]
mov dword [esp + 0x14], 4
mov esi, dword [eax]
xor eax, eax
mov dword [esp + 0x1c], esi
jmp 0x4e0944
mov dword [esp + 0x14], eax
test cl, 0x10
je 0x4e0953
mov eax, dword [edx + 0x30]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax]
mov ecx, dword [esp + 0x38]
test ecx, ecx
cmove esi, eax
cmove eax, dword [esp + 0x1c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x78], eax
test eax, eax
je 0x4e09db
mov esi, dword [eax]
lea eax, [esp + 0x24]
mov ecx, dword [esp + 0x3c]
push eax
mov dword [esp + 0x10], 0x413f4042
mov edx, dword [esi + 0x10]
call fcn.004b4270
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, eax
mov ecx, ebx
movzx eax, byte [esi]
push edi
push edx
push dword [esp + 0x34]
movzx edx, byte [esp + eax - 0x38]
call fcn.0049d670
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov edx, edi
push 1
call fcn.004b2d30
mov ecx, dword [esp + 0x40]
add esp, 4
mov edx, dword [esp + 0x24]
call fcn.004b5490
mov edi, dword [esp + 0x64]
mov ecx, edi
mov edx, dword [esp + 0x78]
call fcn.004dfbf0
mov esi, dword [esp + 0x14]
jmp 0x4e09fd
mov edx, dword [esp + 0x10]
test ecx, ecx
push edx
push dword [esp + 0x30]
mov eax, 0x6a
mov edx, 0x6d
cmovne edx, eax
mov ecx, ebx
call fcn.0049d7a0
add esp, 8
test esi, esi
je 0x4e0a57
mov eax, dword [esp + 0x3c]
mov esi, dword [esi]
inc dword [eax + 0x48]
mov ecx, dword [eax + 0x48]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x54], ecx
push ecx
mov ecx, eax
call fcn.004b4400
mov al, byte [esi]
add esp, 4
cmp al, 0x52
je 0x4e0a3a
cmp al, 0x50
je 0x4e0a3a
mov eax, dword [esp + 0x38]
lea esi, [eax*2 + 0x50]
mov dword [esp + 0x18], esi
jmp 0x4e0a4c
mov eax, dword [esp + 0x38]
xor eax, 1
lea eax, [eax*2 + 0x51]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x14]
mov ecx, edi
call fcn.004dfbf0
cmp dword [esp + 0x38], 0
mov ecx, dword [ebx + 0x20]
sete al
mov dword [edi + 0x34], ecx
add al, 7
cmp dword [esp + 0x18], 0x9f
mov byte [edi + 0x2d], al
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x30], eax
je 0x4e1948
mov edi, dword [esp + 0x3c]
mov edx, 0x68
mov ecx, ebx
inc dword [edi + 0x48]
mov esi, dword [edi + 0x48]
push esi
push eax
call fcn.0049d7a0
mov edx, dword [esp + 0x34]
mov ecx, edi
push esi
push 0xffffffffffffffff
call fcn.004b2bd0
mov edx, dword [esp + 0x28]
mov ecx, ebx
push esi
push dword [esp + 0x24]
push dword [esp + 0x6c]
call fcn.0049d670
add esp, 0x1c
mov dl, 0x53
mov ecx, ebx
call fcn.0049df70
jmp 0x4e1948
test ecx, 0x200
je 0x4e117b
mov esi, dword [edi + 8]
movzx eax, word [edx + 0x18]
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x58], 0
test byte [esi + 0x22], 1
mov esi, dword [esp + 0x3c]
mov dword [esp + 0xc], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x40], 0
mov byte [esp + 0x63], 0
mov dword [esp + 0x10], ecx
je 0x4e0b42
mov edi, dword [esp + 0x48]
cmp byte [edi + 0x24], 0
mov edi, dword [esp + 0x64]
jle 0x4e0b42
cmp word [ecx + 0x32], ax
jbe 0x4e0b42
mov byte [esp + 0x40], 1
mov dword [esp + 0xc], 1
movzx ecx, ax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], ecx
test al, 0x20
je 0x4e0b70
mov eax, dword [edx + 0x30]
mov dword [esp + 0xc], 1
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x4c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x24]
test al, 0x10
je 0x4e0c12
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], 1
mov eax, dword [eax + edx*4]
mov edx, 0x100
mov dword [esp + 0x58], eax
test word [eax + 0x14], dx
je 0x4e0bd6
mov eax, dword [esi + 0x48]
xor ecx, ecx
mov edx, dword [esp + 0x34]
inc eax
mov dword [esi + 0x48], eax
mov dword [edi + 0x24], eax
push eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
cmp byte [edx + eax], 1
mov edx, 0x17
sete cl
xor ecx, dword [esp + 0x3c]
push ecx
mov ecx, ebx
call fcn.0049d7a0
mov eax, dword [ebx + 0x20]
add esp, 8
mov ecx, dword [esp + 0x34]
mov dword [edi + 0x28], eax
cmp dword [esp + 0x4c], 0
jne 0x4e0c12
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
movsx eax, word [eax + ecx*2]
test eax, eax
js 0x4e0c12
lea ecx, [eax + eax*2]
mov dword [esp + 0x24], 1
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x40]
movzx edx, dl
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
cmove edx, dword [esp + 0x24]
mov dword [esp + 0x40], edx
lea eax, [esp + 0x6c]
mov edx, edi
push eax
push dword [esp + 0x10]
mov ecx, esi
push dword [esp + 0x40]
call fcn.004dfec0
mov edx, dword [esp + 0x40]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4e0c42
mov al, byte [edx + eax]
mov byte [esp + 0x2b], al
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 0x32]
cmp cx, ax
jae 0x4e0e9e
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [eax + 0x1c]
cmp byte [edx + eax], cl
mov eax, dword [esp + 0x38]
sete cl
cmp eax, ecx
je 0x4e0ea7
mov ecx, dword [esp + 0x5c]
test eax, eax
je 0x4e0c96
mov ebx, dword [esp + 0x10]
movzx eax, word [ebx + 0x32]
mov ebx, dword [esp + 0x68]
cmp ax, cx
je 0x4e0eab
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4e0cac
test byte [eax + 0x12], 0x28
mov dword [esp + 0x54], 0
je 0x4e0cb4
mov dword [esp + 0x54], 1
cmp dword [esp + 0x58], 0
mov edi, dword [esp + 0x64]
je 0x4e0cd5
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x1c], 0
test byte [ebx + 0x12], 0x28
mov ebx, dword [esp + 0x68]
je 0x4e0cdd
mov dword [esp + 0x1c], 1
test eax, eax
jne 0x4e0ed5
test cx, cx
jne 0x4e0ed5
mov dword [esp + 0x7c], eax
cmp byte [esp + 0x40], 0
mov ecx, edx
mov dword [esp + 0xc], ecx
je 0x4e0d30
mov eax, dword [esp + 0x18]
mov ecx, ebx
add eax, edx
mov edx, 0x1a
push eax
push 0
call fcn.0049d7a0
mov ecx, dword [esp + 0x3c]
add esp, 8
mov dword [esp + 0x54], 0
mov dword [esp + 0x7c], 1
inc ecx
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x40]
push dword [esp + 0x6c]
movzx eax, dl
mov edx, dword [esp + 0x1c]
sub ecx, eax
push ecx
mov ecx, esi
call fcn.004dfc70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x88]
push dword [esp + 0x24]
push dword [esp + 0x54]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x64]
movzx edx, byte [ecx + eax*2 + 0x6ddb78]
mov ecx, ebx
call fcn.0049db60
mov eax, dword [esp + 0x70]
add esp, 0x18
test eax, eax
je 0x4e0f92
mov eax, dword [eax]
mov ecx, esi
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x1c]
mov edx, eax
mov dword [esp + 0x10], eax
call fcn.004b2d30
mov edx, dword [esp + 0x44]
add esp, 4
mov ecx, esi
push dword [esp + 0xc]
call fcn.004b4400
add esp, 4
mov edx, edi
mov ecx, ebx
push dword [esp + 0x58]
call fcn.004e0290
mov ecx, dword [esp + 0x44]
add esp, 4
call fcn.004b15f0
test eax, eax
je 0x4e0df3
push dword [esp + 0x44]
mov edx, 0x4c
mov ecx, ebx
push dword [esp + 0x10]
call fcn.0049d7a0
add esp, 8
mov dl, byte [esp + 0x2b]
mov ecx, dword [esp + 0x40]
call fcn.004afa50
cmp al, 0x41
je 0x4e0fbb
mov dl, byte [esp + 0x2b]
mov ecx, dword [esp + 0x40]
call fcn.004b16a0
test eax, eax
jne 0x4e0fbb
lea esi, [eax + 1]
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x2b]
mov eax, dword [eax + 8]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc]
cmp byte [ecx], 0x41
jne 0x4e0e3f
dec esi
inc eax
inc ecx
test esi, esi
jg 0x4e0e33
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ecx
cmp esi, 1
jle 0x4e0e5d
nop dword [eax]
cmp byte [ecx + esi - 1], 0x41
jne 0x4e0e5d
dec esi
cmp esi, 1
jg 0x4e0e50
test esi, esi
jle 0x4e0f8c
mov ecx, dword [esp + 0x54]
mov edx, 0x30
push esi
push eax
call fcn.0049d7a0
mov ecx, dword [esp + 0x5c]
or edx, 0xffffffff
push esi
push dword [esp + 0x20]
call fcn.0049e1d0
mov edx, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x50]
mov ecx, esi
call fcn.004b2d30
add esp, 0x14
jmp 0x4e0fbb
mov eax, dword [esp + 0x38]
jmp 0x4e0c7d
mov ecx, dword [esp + 0x5c]
mov dl, byte [esp + 0x40]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x3c]
mov byte [esp + 0x63], dl
mov edx, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov byte [esp + 0x40], 0
jmp 0x4e0c9a
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x7c], 1
mov dword [esp + 0xc], edx
test eax, eax
je 0x4e0cf2
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
add ecx, edx
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x10]
mov edx, eax
push ecx
mov ecx, esi
mov dword [esp + 0x60], eax
call fcn.004b4400
add esp, 4
mov edx, edi
mov ecx, ebx
push dword [esp + 0x4c]
call fcn.004e0290
mov ecx, dword [esp + 0x60]
add esp, 4
call fcn.004b15f0
test eax, eax
je 0x4e0f41
push dword [esp + 0x44]
mov edx, 0x4c
mov ecx, ebx
push dword [esp + 0x28]
call fcn.0049d7a0
add esp, 8
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4e0f83
mov edx, dword [esp + 0x34]
add eax, edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov dl, byte [eax]
call fcn.004afa50
cmp al, 0x41
mov eax, dword [esp + 0x74]
jne 0x4e0f6d
mov byte [eax], 0x41
mov dl, 0x41
jmp 0x4e0f6f
mov dl, byte [eax]
mov ecx, dword [esp + 0x5c]
call fcn.004b16a0
test eax, eax
je 0x4e0f83
mov eax, dword [esp + 0x74]
mov byte [eax], 0x41
mov ecx, dword [esp + 0xc]
jmp 0x4e0d2b
mov esi, dword [esp + 0x3c]
jmp 0x4e0fbb
cmp byte [esp + 0x63], 0
je 0x4e0fbf
mov eax, dword [esp + 0x34]
mov edx, 0x1a
add eax, dword [esp + 0x18]
mov ecx, ebx
push eax
push 0
call fcn.0049d7a0
add esp, 8
mov dword [esp + 0x1c], 0
inc dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x80]
call fcn.00480df0
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4e1004
mov ecx, dword [esp + 0x1c]
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
push dword [esp + 0x4c]
push dword [esp + 0x5c]
movzx edx, byte [ecx + eax*2 + str.usrtCREATE_TEMP_TABLE_sqlite_temp_master__n__type_text__n__name_text__n__tbl_name_text__n__rootpage_integer__n__sql_text_n_]
mov ecx, ebx
call fcn.0049db60
add esp, 0x10
mov edx, dword [esp + 0x4c]
mov ecx, edi
call fcn.004dfbf0
mov edx, dword [esp + 0x58]
mov ecx, edi
call fcn.004dfbf0
cmp dword [esp + 0x30], 0
jne 0x4e113d
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
test byte [ecx + 0x2a], 0x20
jne 0x4e109f
inc dword [esi + 0x48]
mov edx, 0x71
mov eax, dword [esi + 0x48]
mov ecx, ebx
push eax
push dword [esp + 0x54]
mov dword [esp + 0x24], eax
call fcn.0049d7a0
push dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov ecx, esi
push 0xffffffffffffffff
call fcn.004b2bd0
mov eax, dword [esp + 0x58]
add esp, 0x10
mov ecx, ebx
cmp byte [eax + 0x26], 0
push dword [esp + 0x1c]
je 0x4e1089
push 0
push dword [esp + 0x34]
mov edx, 0x49
call fcn.0049d670
add esp, 0xc
jmp 0x4e113d
push dword [esp + 0x30]
mov edx, 0x43
call fcn.0049d7a0
add esp, 8
jmp 0x4e113d
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x2c], edx
je 0x4e1141
call fcn.004ba0d0
mov ecx, esi
mov dword [esp + 0x30], eax
movzx edx, word [eax + 0x32]
call fcn.004b54d0
mov dword [esp + 0x14], eax
xor edx, edx
mov eax, dword [esp + 0x30]
xor esi, esi
movzx eax, word [eax + 0x32]
mov ecx, eax
cmp dx, ax
jae 0x4e111b
mov edi, dword [esp + 0x30]
nop dword [eax]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x10]
mov dx, word [eax + esi*2]
call fcn.004ba0f0
movsx ecx, ax
mov edx, 0x2f
mov eax, dword [esp + 0x14]
add eax, esi
push eax
push ecx
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0049d670
movzx ecx, word [edi + 0x32]
inc esi
add esp, 0xc
cmp esi, ecx
jl 0x4e10e0
mov edi, dword [esp + 0x64]
movzx eax, cx
mov edx, 0x45
push eax
push dword [esp + 0x18]
mov ecx, ebx
push dword [esp + 0x8c]
push dword [esp + 0x38]
call fcn.0049db60
add esp, 0x10
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
test dword [ecx + 0x24], 0x1000
je 0x4e1154
mov byte [edi + 0x2d], 0x9f
jmp 0x4e1161
cmp dword [esp + 0x38], 0
sete al
add al, 7
mov byte [edi + 0x2d], al
mov dword [edi + 0x30], edx
mov al, byte [ecx + 0x26]
and al, 1
mov byte [edi + 0x2e], al
test byte [ecx + 0x24], 0xf
jne 0x4e1948
jmp 0x4e1944
test ecx, 0x2000
je 0x4e1906
mov eax, dword [esi + 0x44]
mov ecx, ebx
inc dword [esi + 0x48]
mov dword [esp + 0x78], eax
inc eax
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x74], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x6c], 0
call fcn.0049dc20
mov dword [esp + 0x24], eax
xor edx, edx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x14], 0
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
mov byte [edi + 0x2d], 0x10
mov dword [edi + 0x30], eax
mov al, byte [edx + 0x29]
cmp al, 1
jbe 0x4e1311
movzx eax, al
sub eax, dword [esp + 0x54]
dec eax
push 0
mov dword [esp + 0x34], eax
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, 0x58
push ecx
mov ecx, dword [esp + 0x88]
call fcn.00481060
mov ecx, eax
add esp, 8
mov dword [esp + 0x5c], ecx
test ecx, ecx
jne 0x4e1244
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x30]
mov al, dl
inc al
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
movups xmm0, xmmword [eax]
movups xmmword [ecx + 8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x18], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x28], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x38], xmm0
movups xmm0, xmmword [eax + 0x40]
mov eax, dword [esp + 0x48]
movups xmmword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
mov dword [esp + 0x1c], eax
cmp edx, 1
jl 0x4e12df
lea eax, [edi + 0x7c]
add ecx, 0x58
mov edi, eax
nop word [eax + eax]
movzx eax, byte [edi]
lea edi, [edi + 0x50]
lea ecx, [ecx + 0x50]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [esp + 0x1c]
movups xmm0, xmmword [eax]
movups xmmword [ecx - 0x50], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx - 0x40], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx - 0x30], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx - 0x20], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ecx - 0x10], xmm0
sub edx, 1
jne 0x4e12a0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
test byte [eax + 0x22], 8
jne 0x4e135e
test byte [ecx + 0x2a], 0x20
jne 0x4e131a
inc dword [esi + 0x48]
mov edx, 0x1a
mov eax, dword [esi + 0x48]
mov ecx, ebx
push eax
push 0
mov dword [esp + 0x14], eax
call fcn.0049d7a0
add esp, 8
jmp 0x4e1354
mov eax, dword [edx + 4]
mov dword [esp + 0x5c], eax
jmp 0x4e12e3
call fcn.004ba0d0
mov esi, eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x44]
mov dword [esp + 0xc], edx
lea ecx, [edx + 1]
mov dword [eax + 0x44], ecx
movzx ecx, word [esi + 0x32]
push ecx
push edx
mov edx, 0x39
mov ecx, ebx
call fcn.0049d7a0
add esp, 8
mov edx, esi
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0049e2c0
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
mov dword [esp + 0x6c], eax
push dword [esp + 0x7c]
mov edx, 0x17
mov ecx, ebx
push 0
call fcn.0049d7a0
mov dword [esp + 0x90], eax
add esp, 8
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0xc]
cmp ecx, 1
jle 0x4e14b0
xor edx, edx
mov dword [esp + 0x30], edx
test ecx, ecx
jle 0x4e14b0
mov ebx, dword [esp + 0x80]
xor ecx, ecx
mov edi, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x1c], ecx
nop dword [eax + eax]
mov eax, dword [eax + 0x14]
add eax, ecx
cmp eax, edi
je 0x4e1400
mov edi, dword [eax]
mov dword [esp + 0x44], edi
test byte [edi + 4], 1
jne 0x4e13fc
test byte [eax + 0x14], 2
jne 0x4e13fc
mov edi, 0x1fff
test word [eax + 0x12], di
je 0x4e13fc
mov edx, dword [esp + 0x44]
mov ecx, ebx
push 0
push 0
call fcn.004b0670
push eax
mov edx, esi
mov ecx, ebx
call fcn.004b01b0
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov esi, eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
inc edx
add ecx, 0x30
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], ecx
cmp edx, dword [eax + 0xc]
jl 0x4e13b0
mov ebx, dword [esp + 0x68]
mov ecx, esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x3c]
test ecx, ecx
je 0x4e14b2
mov ecx, dword [esi]
mov edx, 0x48
push 1
push 0
call fcn.004afe50
mov ecx, eax
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], eax
test ecx, ecx
jne 0x4e1470
xor edx, edx
mov ecx, eax
call fcn.004b0550
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
call fcn.004b0550
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x4e14b2
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x10], edx
mov eax, dword [edx + 4]
and eax, 0x200100
or dword [ecx + 4], eax
call fcn.004afda0
mov eax, dword [esi]
mov ecx, dword [eax + 0x64]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x18], ecx
jle 0x4e14a8
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.00483840
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x4e14b2
xor ecx, ecx
mov edi, dword [esp + 0x34]
xor eax, eax
mov edx, 0xf0
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], edx
cmp dword [edi + 0xc], eax
mov edi, dword [esp + 0x64]
jle 0x4e1811
mov ebx, dword [esp + 0x34]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ebx + 0x14]
mov ebx, dword [esp + 0x2c]
cmp dword [eax + 8], ebx
mov ebx, dword [esp + 0x68]
je 0x4e14ff
mov ebx, 0x400
test word [eax + 0x12], bx
mov ebx, dword [esp + 0x68]
je 0x4e17f7
mov eax, dword [eax]
mov dword [esp + 0x50], 0
test ecx, ecx
je 0x4e1518
test byte [eax + 4], 1
jne 0x4e1518
mov dword [ecx + 0xc], eax
mov eax, ecx
push dword [esp + 0x78]
mov ecx, esi
push edx
mov edx, dword [esp + 0x64]
push 0
push 0
push eax
call fcn.004e85e0
add esp, 0x14
mov dword [esp + 0x94], eax
test eax, eax
je 0x4e17f3
movzx ecx, byte [edi + 0x2c]
mov edx, dword [esp + 0x5c]
push 0
push ecx
push dword [esp + 0x5c]
lea ecx, [eax + 0x2e0]
push ecx
mov ecx, esi
call fcn.004df920
mov eax, dword [esp + 0x58]
add esp, 0x10
test byte [eax + 0x22], 8
jne 0x4e16ee
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ecx
test byte [eax + 0x2a], 0x20
jne 0x4e15c9
push 0
push dword [esp + 0x70]
mov edx, eax
mov ecx, esi
push dword [esp + 0x34]
push 0xffffffffffffffff
call fcn.004b2ec0
push dword [esp + 0x54]
mov edx, 0x83
mov ecx, ebx
push eax
push 0
push dword [esp + 0x28]
call fcn.0049db60
add esp, 0x20
mov dword [esp + 0x50], eax
jmp 0x4e16ee
mov ecx, eax
call fcn.004ba0d0
mov ecx, esi
mov dword [esp + 0x1c], eax
movzx edx, word [eax + 0x32]
mov dword [esp + 0x58], edx
call fcn.004b54d0
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ecx
test edx, edx
je 0x4e163f
mov edi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
push 0
push edi
mov eax, dword [eax + 4]
push dword [esp + 0x34]
movsx eax, word [eax + ecx*2]
mov ecx, esi
push eax
call fcn.004b2ec0
add esp, 0x10
cmp eax, edi
je 0x4e1629
push edi
push eax
mov edx, 0x20
mov ecx, ebx
call fcn.0049d7a0
add esp, 8
mov ecx, dword [esp + 0x30]
inc edi
mov edx, dword [esp + 0x58]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, edx
jl 0x4e15f3
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4e166b
push edx
push dword [esp + 0x24]
mov edx, 0x46
mov ecx, ebx
push 0
push dword [esp + 0x18]
call fcn.0049db60
mov dword [esp + 0x60], eax
add esp, 0x10
mov eax, dword [esp + 0x44]
test eax, eax
js 0x4e16c9
push dword [esp + 0x6c]
mov edx, 0x31
mov ecx, ebx
push dword [esp + 0x5c]
push dword [esp + 0x28]
call fcn.0049d670
add esp, 0xc
mov edx, 0x6f
mov ecx, ebx
push 0
push dword [esp + 0x70]
push dword [esp + 0x14]
call fcn.0049d670
add esp, 0xc
cmp dword [esp + 0x44], 0
je 0x4e16c9
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x20]
cmp byte [eax + 0x41], 0
je 0x4e16ba
mov eax, 0x734437
jmp 0x4e16c6
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffef
mov byte [eax], 0x10
push dword [esp + 0x58]
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.004b2d30
mov eax, dword [esp + 0x5c]
add esp, 4
cmp eax, dword [esi + 0x38]
jle 0x4e16ee
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x3c], eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
mov edx, ecx
mov dword [esp + 0x30], ecx
cmp dword [eax + 0x54], ecx
jg 0x4e1711
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
jne 0x4e1748
mov edx, dword [ebx + 0x20]
mov ecx, dword [esp + 0x30]
lea eax, [edx + 1]
mov edx, dword [esp + 0x7c]
mov dword [ebx + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x50], 0
je 0x4e1783
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov eax, dword [ebx]
mov edx, dword [ebx + 0x20]
cmp byte [eax + 0x41], 0
je 0x4e176b
mov eax, 0x734434
jmp 0x4e1780
mov ecx, dword [esp + 0x50]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x94]
mov ecx, 1
mov eax, dword [esp + 0x14]
cmp byte [edx + 0x27], 0
cmovne eax, ecx
mov ecx, dword [edx + 0x320]
mov dword [esp + 0x14], eax
test dword [ecx + 0x24], 0x200
je 0x4e17e4
cmp dword [esp + 0x38], 0
je 0x4e17bd
mov eax, dword [esp + 0x74]
cmp dword [ecx + 0x1c], eax
jne 0x4e17e4
mov eax, dword [esp + 0x40]
test byte [eax + 0x2a], 0x20
je 0x4e17d3
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x4e17e4
mov eax, dword [ecx + 0x1c]
or dword [esp + 0x4c], 0x1000
mov dword [esp + 0x74], eax
jmp 0x4e17ec
mov dword [esp + 0x74], 0
mov ecx, edx
call fcn.004e9110
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
cmp eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x10]
jl 0x4e14d2
mov eax, dword [esp + 0x74]
mov dword [edi + 0x38], eax
test eax, eax
je 0x4e1823
mov eax, dword [esp + 0x78]
mov dword [edi + 8], eax
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x80]
test edx, edx
je 0x4e1840
mov ecx, esi
mov dword [edx + 0xc], 0
call fcn.004b0550
mov ecx, dword [esp + 0x88]
mov edx, dword [ebx + 0x20]
test ecx, ecx
jns 0x4e1851
lea ecx, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x41], 0
je 0x4e1860
mov eax, 0x734434
jmp 0x4e1869
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov ecx, ebx
mov edx, dword [edi + 0xc]
call fcn.0049d800
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x4e1892
mov eax, dword [esp + 0x24]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x20]
mov dword [ecx], eax
mov eax, dword [ebx + 0x20]
dec eax
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x29], 1
jbe 0x4e18f2
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x4e18f2
test esi, esi
je 0x4e18e9
cmp dword [esi + 0x208], 0
je 0x4e18c3
mov edx, ecx
mov ecx, esi
call fcn.00480db0
jmp 0x4e18f2
cmp ecx, dword [esi + 0x114]
jb 0x4e18e9
cmp ecx, dword [esi + 0x118]
jae 0x4e18e9
mov eax, dword [esi + 0x110]
mov dword [ecx], eax
dec dword [esi + 0xfc]
mov dword [esi + 0x110], ecx
jmp 0x4e18f2
push ecx
call fcn.00480d40
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x4e1948
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.004dfbf0
jmp 0x4e1948
test byte [esp + 0x88], 0x20
je 0x4e1916
mov byte [edi + 0x2d], 0x9f
jmp 0x4e1948
mov ecx, dword [esp + 0x38]
push dword [esp + 0x10]
mov al, byte [ecx + 0x6dfb8c]
movzx edx, byte [ecx + 0x6ddd04]
mov ecx, ebx
mov byte [edi + 0x2d], al
mov eax, dword [esp + 0x30]
push eax
mov dword [edi + 0x30], eax
call fcn.0049d7a0
add esp, 8
inc eax
mov dword [edi + 0x34], eax
mov byte [edi + 0x2f], 1
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x14]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x4e1be1
nop
movzx eax, word [esi + 0x14]
xor edi, edi
test al, 6
jne 0x4e1a64
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x48]
and eax, dword [edx + 0x4c]
or ecx, eax
je 0x4e198f
mov eax, dword [esp + 0x48]
mov byte [eax + 0x27], 1
jmp 0x4e1a64
mov eax, dword [esi]
mov dword [esp + 0x94], eax
cmp dword [edx], edi
je 0x4e19a6
test byte [eax + 4], 1
je 0x4e1a64
movzx eax, word [esi + 0x14]
test eax, 0x200
je 0x4e1a0f
mov eax, dword [edx + 0x24]
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x54], edi
jg 0x4e19d8
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
je 0x4e19d8
mov edi, 1
jmp 0x4e1a0f
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x88]
mov word [eax + ecx*4], 0x2e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x3c]
push 0x10
push dword [esp + 0x88]
call fcn.004b4b30
add esp, 8
test edi, edi
je 0x4e1a5f
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov eax, dword [ebx]
mov edx, dword [ebx + 0x20]
cmp byte [eax + 0x41], 0
je 0x4e1a4b
mov eax, 0x734434
jmp 0x4e1a5c
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [esi + 0x14], 4
mov edi, dword [esp + 0x20]
add esi, 0x30
dec edi
mov dword [esp + 0x20], edi
test edi, edi
jg 0x4e1960
mov eax, dword [esp + 0x70]
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x4e1be1
mov ebx, dword [esp + 0x64]
lea edi, [esi + 0x12]
mov edx, 0xb
mov esi, eax
nop dword [eax]
test byte [edi + 2], 6
jne 0x4e1bcd
movzx eax, word [edi]
test al, 0x82
setne cl
bt ax, dx
setb al
test al, cl
je 0x4e1bcd
mov ecx, dword [esp + 0x2c]
cmp dword [edi - 0xa], ecx
jne 0x4e1bcd
cmp dword [ebx], 0
jne 0x4e1bcd
mov eax, dword [edi - 0x12]
mov edx, ecx
mov ecx, dword [esp + 0x70]
push 0
push 0x83
push dword [ebp + 0xc]
mov dword [esp + 0xa0], eax
push dword [ebp + 8]
push dword [edi - 6]
call fcn.004e3cb0
add esp, 0x14
mov dword [esp + 0x88], eax
test eax, eax
je 0x4e1bc8
test byte [eax + 0x14], 4
jne 0x4e1bc8
mov ecx, dword [esp + 0x80]
push 0
push 0x30
call fcn.00481060
mov esi, eax
add esp, 8
test esi, esi
je 0x4e1bc4
mov ecx, dword [esp + 0x88]
mov edx, esi
mov eax, dword [esp + 0x94]
push 0x10
push dword [esp + 0x88]
mov ecx, dword [ecx]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
mov ecx, dword [esp + 0x44]
movups xmmword [esi + 0x20], xmm0
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
call fcn.004b4b30
mov ecx, dword [esp + 0x88]
add esp, 8
test ecx, ecx
je 0x4e1bbb
cmp dword [ecx + 0x208], 0
je 0x4e1b95
mov edx, esi
call fcn.00480db0
jmp 0x4e1bc4
cmp esi, dword [ecx + 0x114]
jb 0x4e1bbb
cmp esi, dword [ecx + 0x118]
jae 0x4e1bbb
mov eax, dword [ecx + 0x110]
mov dword [esi], eax
dec dword [ecx + 0xfc]
mov dword [ecx + 0x110], esi
jmp 0x4e1bc4
push esi
call fcn.00480d40
add esp, 4
mov esi, dword [esp + 0x20]
mov edx, 0xb
dec esi
add edi, 0x30
mov dword [esp + 0x20], esi
test esi, esi
jg 0x4e1aa0
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov eax, dword [edi]
mov dword [esp + 0x88], eax
test eax, eax
je 0x4e1cb5
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
cmp dword [eax + 0x54], esi
jg 0x4e1c12
mov ecx, ebx
call fcn.0049d5e0
test eax, eax
jne 0x4e1c49
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x88]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
call fcn.004b3010
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov esi, dword [edx + 0x14]
xor edx, edx
mov dword [esp + 0x24], edx
cmp dword [eax + 0xc], edx
jle 0x4e1cb5
nop word [eax + eax]
test byte [esi + 0x14], 6
jne 0x4e1ca8
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edi + 0x48]
and eax, dword [edi + 0x4c]
or ecx, eax
jne 0x4e1ca4
mov edx, dword [esi]
mov ecx, ebx
push 0x10
push dword [esp + 0x88]
call fcn.004b4b30
mov edx, dword [esp + 0x2c]
add esp, 8
or word [esi + 0x14], 4
mov eax, dword [esp + 0x70]
inc edx
add esi, 0x30
mov dword [esp + 0x24], edx
cmp edx, dword [eax + 0xc]
jl 0x4e1c70
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret