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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1678
call fcn.004a2a80
mov eax, dword [0x5b16b0]
xor eax, esp
mov dword [esp + 0x1674], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
shl ecx, 4
mov dword [esp + 0x88], eax
mov eax, dword [ecx + 0x589550]
lea ecx, [esi + eax*4 + 0x3780]
mov dword [esp + 0x48], ecx
mov ecx, dword [edx]
push ebx
mov ebx, dword [esi + 0x1f3c]
push edi
mov edi, dword [ecx*4 + 0x589a18]
add edi, edi
lea eax, [esi + eax*4 + 0x3840]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edi
mov edi, dword [ecx*8 + 0x5893d0]
mov ecx, dword [ecx*8 + 0x5893d4]
mov dword [esp + 0x54], eax
movsx eax, word [edx + 0x40]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0x1f34]
cmp eax, ecx
mov dword [esp + 0x2c], edx
jge 0x50cbad
mov ebx, ecx
jmp 0x50cbb3
cmp eax, ebx
jg 0x50cbb3
mov ebx, eax
mov eax, dword [edx + 4]
add ebx, ebx
mov dword [esp + 0xb0], eax
sub eax, ebx
mov dword [esp + 0x64], eax
movsx eax, word [edx + 0x42]
cmp eax, ecx
jge 0x50cbd1
mov eax, ecx
jmp 0x50cbdd
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jle 0x50cbdd
mov eax, edx
mov ebx, dword [esp + 0x90]
lea edx, [eax + eax]
mov eax, dword [esp + 0xb0]
sub eax, edx
mov dword [esp + 0x58], eax
movsx eax, word [ebx + 0x40]
cmp eax, ecx
jge 0x50cc00
mov edx, ecx
jmp 0x50cc0c
mov edx, dword [esi + 0x1f3c]
cmp eax, edx
jg 0x50cc0c
mov edx, eax
mov eax, dword [ebx + 4]
add edx, edx
mov ebx, edx
mov edx, eax
sub edx, ebx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x90]
movsx ebx, word [edx + 0x42]
cmp ebx, ecx
jl 0x50cc36
mov ecx, dword [esi + 0x1f3c]
cmp ebx, ecx
jg 0x50cc36
mov ecx, ebx
movsx ebx, word [edx + 0x4e]
add ecx, ecx
sub eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
movsx eax, word [ecx + 0x4c]
movsx ecx, word [ecx + 0x4e]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
movsx eax, word [edx + 0x4c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
mov eax, 0x10000000
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x1f40]
add eax, 0xfffffff8
cmp ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], 0
jg 0x510d28
cmp ebx, eax
jg 0x510d28
mov eax, dword [esi + 0x4d34]
lea edx, [esp + 0x270]
push 0x200
push edx
call eax
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x28]
push edi
push edx
mov edx, dword [esp + 0x38]
lea eax, [ecx + 0x10]
mov ecx, dword [ecx + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
push eax
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0x894]
push eax
mov dword [esp + 0x118], edi
mov dword [esp + 0x13c], edi
call ecx
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0xb8]
push edx
push edi
mov edx, ebx
push edx
mov edx, dword [esp + 0x54]
push edx
mov dword [esp + 0x170], eax
lea eax, [ecx + 0x10]
mov ecx, dword [ecx + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
push eax
lea edx, [esp + 0x154]
push edx
lea eax, [esp + 0x11b4]
push eax
call ecx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x64]
and edx, 7
and eax, 7
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x68]
and edx, 7
lea eax, [esp + edx + 0x2b8]
lea edx, [eax + ecx*8]
mov ecx, ebx
and ecx, 7
add esp, 0x48
mov al, 1
shl al, cl
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [esp + 0xf4]
or byte [edx], al
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x160]
push edx
mov edx, dword [esp + 0x140]
push eax
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esi + ecx*4 + 0x4cd8]
lea eax, [esp + 0x184]
push edi
push eax
call edx
mov ecx, dword [esp + 0x48]
push edi
lea eax, [esp + 0x190]
push eax
push 0x10
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esi + eax*4 + 0x4b40]
push edx
call ecx
mov edx, dword [esp + 0x78]
mov ecx, ebx
movsx edx, word [edx + ecx*2]
mov ecx, dword [esp + 0x8c]
add eax, edx
mov edx, dword [esp + 0x4c]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x84]
add eax, ecx
mov ecx, dword [esp + 0x48]
movsx edx, word [edx + ecx*2]
mov ecx, dword [esp + 0x90]
add eax, edx
mov edx, dword [esp + 0x50]
movsx ecx, word [ecx + edx*2]
add esp, 0x2c
add eax, ecx
cmp dword [ebp + 0x18], 0
je 0x50ce7f
cmp eax, 0x1000000
jge 0x50ce8a
cmp eax, 0x10000000
jge 0x50ce1d
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x1c]
movzx eax, word [esp + 0x24]
mov ecx, dword [esp + 0x50]
shl edx, 0x10
add eax, edx
mov edx, dword [esp + 0x5c]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x28]
movzx eax, word [esp + 0x20]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
push edx
push eax
push ecx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, 0x10000000
ja 0x50ce8a
jb 0x50ce75
test eax, eax
jae 0x50ce8a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50ce8a
cmp eax, 0x10000000
jge 0x50ce8a
mov dword [esp + 0x10], eax
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push edx
push edi
push ecx
add eax, 1
push eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x38]
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0xb8c]
push ecx
mov dword [esp + 0x11c], edi
mov dword [esp + 0x140], edi
call edx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x48]
push ecx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x44]
push edi
push edx
add eax, 1
push eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0x14ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x5c]
add esp, 0x40
push edx
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x28]
push edi
push ecx
add eax, 0xffffffff
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x38]
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x58c]
push ecx
mov dword [esp + 0x104], edi
mov dword [esp + 0x128], edi
call edx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x48]
push ecx
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x44]
push edi
add eax, 0xffffffff
push edx
push eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
add eax, 0x10
mov ecx, dword [esi + 0x4cd0]
push eax
lea edx, [esp + 0x140]
push edx
lea eax, [esp + 0xeac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
add esp, 0x40
push edx
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x20]
add eax, 1
push edi
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x10c]
push edx
lea eax, [esp + 0x98c]
push eax
mov dword [esp + 0x114], edi
mov dword [esp + 0x138], edi
call ecx
mov edx, dword [esp + 0x90]
push edx
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x4c]
add eax, 1
push edi
push eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x150]
push edx
lea eax, [esp + 0x12ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
add esp, 0x40
push edx
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x20]
add eax, 0xffffffff
push edi
push eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x104]
push edx
lea eax, [esp + 0x78c]
push eax
mov dword [esp + 0x10c], edi
mov dword [esp + 0x130], edi
call ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x48]
add eax, 0xffffffff
mov dword [esp + 0x94], eax
push edx
push edi
push eax
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x10ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
add esp, 0x40
push edx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x80]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0xc8c]
push ecx
mov dword [esp + 0x120], edi
mov dword [esp + 0x144], edi
call edx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x15c]
push edx
lea eax, [esp + 0x15ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
add esp, 0x40
push edx
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x8c]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x48c]
push ecx
mov dword [esp + 0x100], edi
mov dword [esp + 0x124], edi
call edx
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x13c]
push edx
lea eax, [esp + 0xdac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
add esp, 0x40
push edx
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x8c]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0xa8c]
push ecx
mov dword [esp + 0x118], edi
mov dword [esp + 0x13c], edi
call edx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x154]
push edx
lea eax, [esp + 0x13ac]
push eax
call ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
add esp, 0x40
push edx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x80]
push edi
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0x68c]
push ecx
mov dword [esp + 0x108], edi
mov dword [esp + 0x12c], edi
call edx
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xb4]
push edi
push ecx
mov ecx, dword [eax + 0x38]
push edx
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x144]
push edx
lea eax, [esp + 0xfac]
push eax
call ecx
add esp, 0x40
cmp dword [esp + 0x48], 0
mov dword [esp + 0x154], eax
je 0x50d406
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
and ecx, 7
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0xa0], ecx
add ecx, eax
add ecx, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x20]
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0x8c], eax
add eax, ecx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x84]
lea edx, [esp + eax + 0x270]
and ecx, 7
mov eax, 1
shl eax, cl
mov dword [esp + 0x98], ecx
mov ecx, edx
mov dword [esp + 0x9c], edx
mov dl, byte [ecx]
test dl, al
jne 0x50d5c3
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
and ecx, 7
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0xa0], ecx
add ecx, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x20]
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 7
mov dword [esp + 0x8c], eax
add eax, ecx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x84]
and ecx, 7
mov dl, 1
shl dl, cl
lea eax, [esp + eax + 0x270]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], ecx
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x54]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x4c]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x48]
movsx edx, word [edx + eax*2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x50]
movsx eax, word [eax + edx*2]
add esp, 0x2c
add ecx, eax
cmp dword [ebp + 0x18], 0
je 0x50d5ae
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50d5c3
cmp ecx, dword [esp + 0x10]
jge 0x50d53d
mov dword [esp + 0x10], ecx
movzx edx, word [esp + 0x24]
mov ecx, dword [esp + 0x1c]
shl ecx, 0x10
lea eax, [ecx + edx]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
movzx ecx, word [esp + 0x20]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50d5c3
jb 0x50d599
cmp eax, dword [esp + 0x38]
jae 0x50d5c3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x50d5c3
cmp ecx, dword [esp + 0x10]
jge 0x50d5c3
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50d5f0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x9c]
and ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0x94], ecx
mov cl, byte [eax]
test cl, dl
jne 0x50d753
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x9c]
and ecx, 7
mov dl, 1
shl dl, cl
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x4c]
movsx edx, word [edx + eax*2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x48]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50d741
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50d753
cmp ecx, dword [esp + 0x10]
jge 0x50d6d8
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x20]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50d753
jb 0x50d72f
cmp eax, dword [esp + 0x38]
jae 0x50d753
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
jmp 0x50d753
cmp ecx, dword [esp + 0x10]
jge 0x50d753
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50d799
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xa4]
and eax, 7
add edx, eax
mov dword [esp + 0xa8], eax
lea eax, [esp + edx + 0x270]
mov ecx, ebx
and ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0x44], ecx
mov cl, byte [eax]
mov dword [esp + 0x9c], eax
test cl, dl
jne 0x50d918
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xa4]
and eax, 7
mov dword [esp + 0xa8], eax
add eax, edx
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
lea eax, [esp + eax + 0x270]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x44], ecx
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x4c]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x48]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50d902
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50d918
cmp ecx, dword [esp + 0x10]
jge 0x50d89a
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50d918
jb 0x50d8f0
cmp eax, dword [esp + 0x38]
jae 0x50d918
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x50d914
cmp ecx, dword [esp + 0x10]
jge 0x50d918
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x50d95c
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x44]
and eax, 7
mov dword [esp + 0xac], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xb8], eax
mov al, byte [eax]
test al, dl
jne 0x50dae6
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xa4]
and eax, 7
mov dword [esp + 0xac], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xb8], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x48]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50dacd
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50dae6
cmp ecx, dword [esp + 0x10]
jge 0x50da5b
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50dae6
jb 0x50dab8
cmp eax, dword [esp + 0x38]
jae 0x50dae6
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
jmp 0x50dae2
cmp ecx, dword [esp + 0x10]
jge 0x50dae6
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x50db3d
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xd4], eax
add eax, edx
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xbc], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xc4], eax
mov al, byte [eax]
test al, dl
jne 0x50dce0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xd4], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xbc], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xc4], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x48]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50dcc2
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50dce0
cmp ecx, dword [esp + 0x10]
jge 0x50dc4f
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
movzx ecx, word [esp + 0x24]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50dce0
jb 0x50dca8
cmp eax, dword [esp + 0x38]
jae 0x50dce0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x50dcdc
cmp ecx, dword [esp + 0x10]
jge 0x50dce0
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x50dd3a
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xdc], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa4], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xd0], eax
mov al, byte [eax]
test al, dl
jne 0x50dee6
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
and eax, 7
mov dword [esp + 0xdc], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa4], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xd0], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50dec5
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50dee6
cmp ecx, dword [esp + 0x10]
jge 0x50de4f
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x24]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50dee6
jb 0x50dea8
cmp eax, dword [esp + 0x38]
jae 0x50dee6
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x50dee2
cmp ecx, dword [esp + 0x10]
jge 0x50dee6
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x48], 0
je 0x50df43
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xc0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xb0], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xb4], eax
mov al, byte [eax]
test al, dl
jne 0x50e0e1
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xc0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xb0], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xb4], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x90]
mov ecx, eax
mov eax, dword [esp + 0x50]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50e0bb
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50e0e1
cmp ecx, dword [esp + 0x10]
jge 0x50e05b
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50e0e1
jb 0x50e0b1
cmp eax, dword [esp + 0x38]
jae 0x50e0e1
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50e0c5
cmp ecx, dword [esp + 0x10]
jge 0x50e0e1
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50e13e
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xcc], eax
add eax, edx
mov edx, 1
lea eax, [esp + eax + 0x270]
shl edx, cl
mov dword [esp + 0xd8], eax
mov al, byte [eax]
test al, dl
jne 0x50e2e3
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x8c]
and eax, 7
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xa0], eax
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0xcc], eax
add eax, edx
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
mov dword [esp + 0xd8], eax
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x90]
mov ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x78]
add ecx, edx
movsx edx, word [eax + ebx*2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50e2bd
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50e2e3
cmp ecx, dword [esp + 0x10]
jge 0x50e256
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50e2e3
jb 0x50e2b3
cmp eax, dword [esp + 0x38]
jae 0x50e2e3
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50e2c7
cmp ecx, dword [esp + 0x10]
jge 0x50e2e3
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50e309
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x9c]
mov dl, byte [ecx]
test dl, al
jne 0x50e49c
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x124]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x16c]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50e46f
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50e49c
cmp ecx, dword [esp + 0x10]
jge 0x50e3eb
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x68]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50e49c
jb 0x50e442
cmp eax, dword [esp + 0x38]
jae 0x50e49c
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50e49c
cmp ecx, dword [esp + 0x10]
jge 0x50e49c
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50e4c2
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x50e65d
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x104]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x14c]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50e630
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50e65d
cmp ecx, dword [esp + 0x10]
jge 0x50e5a4
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
add ecx, 0xffffffff
and ecx, 0xffff
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50e65d
jb 0x50e603
cmp eax, dword [esp + 0x38]
jae 0x50e65d
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50e65d
cmp ecx, dword [esp + 0x10]
jge 0x50e65d
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50e68c
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x50e805
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xbc]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50e7df
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50e805
cmp ecx, dword [esp + 0x10]
jge 0x50e77c
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50e805
jb 0x50e7d5
cmp eax, dword [esp + 0x38]
jae 0x50e805
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50e7e9
cmp ecx, dword [esp + 0x10]
jge 0x50e805
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50e834
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x50e9b9
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50e98d
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50e9b9
cmp ecx, dword [esp + 0x10]
jge 0x50e923
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50e9b9
jb 0x50e983
cmp eax, dword [esp + 0x38]
jae 0x50e9b9
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50e997
cmp ecx, dword [esp + 0x10]
jge 0x50e9b9
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50e9f2
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x50eb74
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x150]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50eb4e
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50eb74
cmp ecx, dword [esp + 0x10]
jge 0x50eaeb
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x6c]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50eb74
jb 0x50eb44
cmp eax, dword [esp + 0x38]
jae 0x50eb74
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50eb58
cmp ecx, dword [esp + 0x10]
jge 0x50eb74
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50ebad
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x50ed3a
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xe4]
push ecx
mov ecx, dword [esp + 0x130]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50ed11
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50ed3a
cmp ecx, dword [esp + 0x10]
jge 0x50eca6
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
add ecx, 0xffffffff
shl eax, 0x10
and ecx, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50ed3a
jb 0x50ed07
cmp eax, dword [esp + 0x38]
jae 0x50ed3a
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50ed1b
cmp ecx, dword [esp + 0x10]
jge 0x50ed3a
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50ed60
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x50eef3
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xb4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50eec6
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50eef3
cmp ecx, dword [esp + 0x10]
jge 0x50ee42
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50eef3
jb 0x50ee99
cmp eax, dword [esp + 0x38]
jae 0x50eef3
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50eef3
cmp ecx, dword [esp + 0x10]
jge 0x50eef3
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50ef19
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x50f0ad
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50f083
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50f0ad
cmp ecx, dword [esp + 0x10]
jge 0x50effb
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50f0ad
jb 0x50f059
cmp eax, dword [esp + 0x38]
jae 0x50f0ad
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50f0ad
cmp ecx, dword [esp + 0x10]
jge 0x50f0ad
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50f0d3
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x50f269
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xc4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50f23c
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50f269
cmp ecx, dword [esp + 0x10]
jge 0x50f1b5
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50f269
jb 0x50f20f
cmp eax, dword [esp + 0x38]
jae 0x50f269
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50f269
cmp ecx, dword [esp + 0x10]
jge 0x50f269
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50f28f
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x50f425
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50f3f8
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50f425
cmp ecx, dword [esp + 0x10]
jge 0x50f371
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50f425
jb 0x50f3cb
cmp eax, dword [esp + 0x38]
jae 0x50f425
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50f425
cmp ecx, dword [esp + 0x10]
jge 0x50f425
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50f454
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x50f5ca
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xb0]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50f5a4
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50f5ca
cmp ecx, dword [esp + 0x10]
jge 0x50f544
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50f5ca
jb 0x50f59a
cmp eax, dword [esp + 0x38]
jae 0x50f5ca
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50f5ae
cmp ecx, dword [esp + 0x10]
jge 0x50f5ca
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50f5f9
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xcc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x50f77f
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xcc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50f756
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50f77f
cmp ecx, dword [esp + 0x10]
jge 0x50f6e8
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50f77f
jb 0x50f74c
cmp eax, dword [esp + 0x38]
jae 0x50f77f
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50f760
cmp ecx, dword [esp + 0x10]
jge 0x50f77f
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50f7a5
mov ecx, dword [esp + 0x98]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb8]
mov dl, byte [ecx]
test dl, al
jne 0x50f946
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xb8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x10c]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x154]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50f916
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50f946
cmp ecx, dword [esp + 0x10]
jge 0x50f887
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
add ecx, 0xffffffff
and ecx, 0xffff
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50f946
jb 0x50f8e6
cmp eax, dword [esp + 0x38]
jae 0x50f946
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50f946
cmp ecx, dword [esp + 0x10]
jge 0x50f946
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50f96c
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x50faf9
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x11c]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0x140]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50facf
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50faf9
cmp ecx, dword [esp + 0x10]
jge 0x50fa4e
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x68]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50faf9
jb 0x50faa5
cmp eax, dword [esp + 0x38]
jae 0x50faf9
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x50faf9
cmp ecx, dword [esp + 0x10]
jge 0x50faf9
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x50fb28
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x50fca4
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50fc7b
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50fca4
cmp ecx, dword [esp + 0x10]
jge 0x50fc18
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50fca4
jb 0x50fc71
cmp eax, dword [esp + 0x38]
jae 0x50fca4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50fc85
cmp ecx, dword [esp + 0x10]
jge 0x50fca4
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50fcd3
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xbc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x50fe55
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xbc]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x84]
add ecx, edx
mov edx, dword [esp + 0x44]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50fe2c
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x50fe55
cmp ecx, dword [esp + 0x10]
jge 0x50fdc2
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x50fe55
jb 0x50fe22
cmp eax, dword [esp + 0x38]
jae 0x50fe55
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50fe36
cmp ecx, dword [esp + 0x10]
jge 0x50fe55
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x50fe8e
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x510018
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xec]
push ecx
mov ecx, dword [esp + 0x138]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x50fff2
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x510018
cmp ecx, dword [esp + 0x10]
jge 0x50ff87
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
add ecx, 0xffffffff
shl eax, 0x10
and ecx, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x510018
jb 0x50ffe8
cmp eax, dword [esp + 0x38]
jae 0x510018
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x50fffc
cmp ecx, dword [esp + 0x10]
jge 0x510018
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x510051
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x5101d6
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x114]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x148]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x8c]
add ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5101ad
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5101d6
cmp ecx, dword [esp + 0x10]
jge 0x51014a
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x6c]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
mov eax, ebx
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5101d6
jb 0x5101a3
cmp eax, dword [esp + 0x38]
jae 0x5101d6
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x5101b7
cmp ecx, dword [esp + 0x10]
jge 0x5101d6
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x5101fc
mov ecx, dword [esp + 0x94]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov dl, byte [ecx]
test dl, al
jne 0x510389
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xb4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x51035f
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x510389
cmp ecx, dword [esp + 0x10]
jge 0x5102de
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x510389
jb 0x510335
cmp eax, dword [esp + 0x38]
jae 0x510389
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x510389
cmp ecx, dword [esp + 0x10]
jge 0x510389
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5103af
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd8]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x510549
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd8]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x51051c
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x510549
cmp ecx, dword [esp + 0x10]
jge 0x510491
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
and eax, 0xffff
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x510549
jb 0x5104ef
cmp eax, dword [esp + 0x38]
jae 0x510549
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x510549
cmp ecx, dword [esp + 0x10]
jge 0x510549
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x51056f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd0]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x51070b
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd0]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x118]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x13c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 + 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x5106db
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x51070b
cmp ecx, dword [esp + 0x10]
jge 0x510651
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx + 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x51070b
jb 0x5106ab
cmp eax, dword [esp + 0x38]
jae 0x51070b
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x51070b
cmp ecx, dword [esp + 0x10]
jge 0x51070b
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x510731
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xc4]
mov edx, 1
shl edx, cl
mov cl, byte [eax]
test cl, dl
jne 0x5108c1
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xc4]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x110]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x144]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x78]
mov ecx, eax
movsx eax, word [edx + ebx*2 - 2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov edx, dword [esp + 0x40]
movsx eax, word [eax + edx*2]
mov edx, dword [esp + 0x90]
add ecx, eax
mov eax, dword [esp + 0x5c]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x510897
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x5108c1
cmp ecx, dword [esp + 0x10]
jge 0x510813
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
mov edx, dword [esp + 0x5c]
add eax, 1
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx ecx, word [esp + 0x14]
lea eax, [ebx - 1]
shl eax, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x5108c1
jb 0x51086d
cmp eax, dword [esp + 0x38]
jae 0x5108c1
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jmp 0x5108c1
cmp ecx, dword [esp + 0x10]
jge 0x5108c1
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x48], 0
je 0x5108f0
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x44]
add edx, eax
mov eax, 1
shl eax, cl
test byte [esp + edx + 0x270], al
jne 0x510a6d
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xcc]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x120]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x168]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0x134]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 + 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 - 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x510a47
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x510a6d
cmp ecx, dword [esp + 0x10]
jge 0x5109e0
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
add eax, 0xffffffff
shl ecx, 0x10
and eax, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
movzx eax, word [esp + 0x68]
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x510a6d
jb 0x510a3d
cmp eax, dword [esp + 0x38]
jae 0x510a6d
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x510a51
cmp ecx, dword [esp + 0x10]
jge 0x510a6d
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 0
je 0x510a9c
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test byte [esp + eax + 0x270], dl
jne 0x510c1b
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dl, 1
shl dl, cl
mov ecx, dword [esp + 0x108]
lea eax, [esp + eax + 0x270]
or byte [eax], dl
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x150]
push eax
mov eax, dword [esp + 0x100]
push ecx
mov ecx, dword [esp + 0x14c]
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + eax*4 + 0x4cd8]
lea edx, [esp + 0x184]
push edi
push edx
call ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
mov eax, dword [esi + edx*4 + 0x4b40]
push 0x10
push ecx
call eax
mov edx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
movsx edx, word [edx + eax*2 - 2]
mov eax, dword [esp + 0x90]
add ecx, edx
mov edx, dword [esp + 0x5c]
movsx eax, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x78]
add ecx, eax
movsx eax, word [edx + ebx*2]
mov edx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x44]
movsx edx, word [edx + eax*2]
add esp, 0x2c
add ecx, edx
cmp dword [ebp + 0x18], 0
je 0x510bf2
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 4
add eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, eax
jge 0x510c1b
cmp ecx, dword [esp + 0x10]
jge 0x510b8b
mov dword [esp + 0x10], ecx
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + ecx], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
and eax, 0xffff
mov ecx, ebx
shl ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.004e3190
add esp, 0x10
cmp edx, dword [esp + 0x3c]
ja 0x510c1b
jb 0x510be8
cmp eax, dword [esp + 0x38]
jae 0x510c1b
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x510bfc
cmp ecx, dword [esp + 0x10]
jge 0x510c1b
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x24]
jne 0x510c43
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x1c]
jne 0x510c43
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x20]
jne 0x510c43
cmp ebx, dword [esp + 0x28]
je 0x510cf9
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x70]
push edx
push edi
push ecx
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x38]
push ecx
mov ecx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea edx, [esp + 0x108]
push edx
lea eax, [esp + 0x88c]
push eax
mov dword [esp + 0x110], edi
mov dword [esp + 0x134], edi
call ecx
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x40]
push edx
mov dword [esp + 0x15c], eax
push edi
mov eax, ebx
push eax
mov eax, dword [esp + 0xbc]
mov edx, dword [eax + 0x38]
push ecx
push edx
mov edx, dword [esi + 0x4cd0]
add eax, 0x10
push eax
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x11ac]
push ecx
call edx
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x88]
add eax, 1
add esp, 0x40
cmp eax, 8
mov dword [esp + 0x48], eax
jl 0x50ce92
movzx ecx, word [esp + 0x24]
movzx edx, word [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov word [eax + 0x4c], cx
movzx ecx, word [esp + 0x20]
mov word [eax + 0x4e], dx
movzx edx, word [esp + 0x28]
mov eax, dword [esp + 0x90]
mov word [eax + 0x4c], cx
mov word [eax + 0x4e], dx
mov ecx, dword [esp + 0x167c]
pop edi
pop ebx
xor ecx, esp
call fcn.00499441
mov esp, ebp
pop ebp
ret