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

Disassembly:
sub esp, 0x11c
xor eax, eax
mov dword [esp + 0xb0], 0
push ebx
mov ebx, dword [esp + 0x124]
push ebp
push esi
push edi
mov esi, dword [ebx]
xor edi, edi
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], edi
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x3c], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xb8], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xa8], 1
mov dword [esp + 0xb4], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x4c], esi
cmp dword [ebx + 0x24], eax
jne 0x4d3a6c
cmp byte [esi + 0x51], al
jne 0x4d3a6c
mov ecx, dword [esp + 0x134]
push ecx
push ebx
call fcn.004cf980
mov ebp, eax
add esp, 8
mov dword [esp + 0x1c], ebp
test ebp, ebp
je 0x4d3a6c
push dword [ebp + 0x48]
push dword [ebx]
call fcn.004cc310
mov dword [esp + 0x98], eax
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0x144]
push 0x7f
push ebp
push ebx
call fcn.004d0e90
mov edx, dword [esp + 0x150]
xor ecx, ecx
add esp, 0x1c
mov dword [esp + 0x48], eax
cmp dword [ebp + 0xc], ecx
setne cl
cmp dword [edx], 1
mov dword [esp + 0x58], ecx
jle 0x4d1563
mov eax, dword [esp + 0x138]
mov eax, dword [eax]
jmp 0x4d1565
xor eax, eax
mov dword [esp + 0x2c], eax
test ecx, ecx
jne 0x4d15a5
test eax, eax
jne 0x4d15a5
push str.UPDATE
push dword [esp + 0x14c]
push dword [esp + 0x14c]
push dword [esp + 0x148]
push edx
push ebx
call fcn.004c2070
add esp, 0x18
mov dword [esp + 0x88], edi
mov dword [esp + 0x80], edi
jmp 0x4d15c8
mov eax, dword [esp + 0x148]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x13c]
push ebp
push ebx
mov dword [esp + 0x3c], eax
call fcn.004e0750
add esp, 8
test eax, eax
jne 0x4d1af6
push dword [esp + 0xbc]
push ebp
push ebx
call fcn.004c1390
add esp, 0xc
test eax, eax
jne 0x4d1af6
mov edi, dword [ebx + 0x28]
mov ecx, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x98], ecx
lea edx, [edi + 1]
mov dword [ebx + 0x28], edx
test byte [ebp + 0x24], 0x80
mov dword [esp + 0x94], edx
jne 0x4d1620
mov dword [esp + 0x30], eax
jmp 0x4d162f
push ebp
call fcn.004c9c30
add esp, 4
mov dword [esp + 0x30], eax
mov ecx, edi
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x68], esi
test eax, eax
je 0x4d165c
lea esp, [esp]
cmp dword [esp + 0x30], eax
jne 0x4d1648
mov edi, edx
inc edx
inc esi
mov dword [ebx + 0x28], edx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4d1640
mov dword [esp + 0x10], edi
mov dword [esp + 0x68], esi
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x4d167b
mov edi, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x10], edi
mov dword [esp + 0x94], eax
mov dword [ebx + 0x28], ecx
mov ecx, dword [esp + 0x134]
push 0
mov dword [ecx + 0x34], edi
movsx eax, word [ebp + 0x2a]
add eax, esi
lea eax, [eax*4 + 6]
add eax, esi
push eax
push dword [esp + 0x54]
call fcn.004ad310
mov edi, eax
add esp, 0xc
mov dword [esp + 0x20], edi
test edi, edi
je 0x4d1af2
movsx eax, word [ebp + 0x2a]
lea eax, [edi + eax*4]
lea edi, [eax + 4]
mov dword [esp + 0x70], eax
lea eax, [esi + 1]
push eax
lea edi, [edi + esi*4]
push 1
push edi
mov dword [esp + 0x88], edi
call sub.MSVCRT.dll_memset
mov byte [edi + esi + 1], 0
xor eax, eax
mov edi, dword [esp + 0x2c]
add esp, 0xc
xor ecx, ecx
cmp ax, word [ebp + 0x2a]
jge 0x4d1700
jmp 0x4d16f0
mov dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebp + 0x2a]
cmp ecx, eax
jl 0x4d16f0
mov ecx, dword [esp + 0x14c]
xor eax, eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0xf4], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x108], 0x200
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d1799
cmp dword [ebx + 0x74], eax
jne 0x4d1784
mov eax, dword [ebx]
test byte [eax + 0x4c], 8
jne 0x4d1784
mov byte [ebx + 0x17], 1
push ebx
call fcn.004d54b0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x4d1af2
mov ecx, dword [esp + 0x138]
xor ebx, ebx
xor al, al
mov byte [esp + 0x3b], 0
mov byte [esp + 0x1b], al
mov dword [esp + 0x50], ebx
cmp dword [ecx], ebx
jle 0x4d19cc
lea esi, [ecx + 4]
mov dword [esp + 0x44], esi
cmp dword [esp + 0x2c], 0
jne 0x4d17e1
push dword [esi]
lea eax, [esp + 0xf4]
push eax
call fcn.004cabb0
add esp, 8
test eax, eax
jne 0x4d1aee
movsx ebp, word [ebp + 0x2a]
xor edi, edi
test ebp, ebp
jle 0x4d186e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov ebx, eax
mov dword [esp + 0x8c], eax
nop
mov esi, dword [esi + 4]
mov edx, dword [ebx]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4d1849
test ecx, ecx
jne 0x4d185b
mov ebp, dword [esp + 0x1c]
movsx eax, word [ebp + 0x28]
cmp edi, eax
jne 0x4d18ab
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x50]
mov byte [esp + 0x1b], 1
mov dword [esp + 0x6c], ebx
mov eax, dword [esi]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x20]
mov dword [eax + edi*4], ebx
jmp 0x4d1872
movzx eax, byte [eax + 0x523870]
movzx ecx, byte [ecx + 0x523870]
sub ecx, eax
jne 0x4d185e
inc edx
jmp 0x4d1807
mov esi, dword [esp + 0x44]
inc edi
add ebx, 0x14
cmp edi, ebp
jl 0x4d1800
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x1c]
movsx eax, word [ebp + 0x2a]
cmp edi, eax
jl 0x4d1958
cmp dword [esp + 0x30], 0
jne 0x4d1b45
mov edi, dword [esi + 4]
mov esi, str._ROWID_
mov edx, edi
sub esi, edi
movzx ecx, byte [edx]
movzx eax, byte [edx + esi]
cmp ecx, eax
jne 0x4d18fb
test ecx, ecx
je 0x4d1938
inc edx
jmp 0x4d1895
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x8c]
je 0x4d18d9
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 1
je 0x4d18d9
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x44]
mov byte [esp + 0x3b], 1
mov dword [eax + edi*4], ebx
jmp 0x4d1872
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 0x60
jne 0x4d1ad1
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x44]
mov dword [eax + edi*4], ebx
jmp 0x4d1872
movzx eax, byte [eax + 0x523870]
movzx ecx, byte [ecx + 0x523870]
sub ecx, eax
jne 0x4d1910
inc edx
jmp 0x4d1895
push str.ROWID
push edi
call fcn.004d02b0
add esp, 8
test eax, eax
je 0x4d1938
push 0x526c28
push edi
call fcn.004d02b0
add esp, 8
test eax, eax
jne 0x4d1b45
mov esi, dword [esp + 0x44]
or edi, 0xffffffff
mov byte [esp + 0x1b], 1
mov edx, str.ROWID
mov dword [esp + 0x6c], ebx
mov eax, dword [esi]
mov dword [esp + 0xb0], eax
jmp 0x4d196c
test edi, edi
jns 0x4d1963
mov edx, str.ROWID
jmp 0x4d196c
mov eax, dword [ebp + 4]
lea ecx, [edi + edi*4]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x90]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
push edx
push dword [ebp]
push 0x17
push dword [esp + 0x140]
call fcn.004a51d0
add esp, 0x14
cmp eax, 1
je 0x4d1aee
cmp eax, 2
jne 0x4d19ad
mov eax, dword [esp + 0x20]
mov dword [eax + edi*4], 0xffffffff
mov ecx, dword [esp + 0x138]
inc ebx
add esi, 0x14
mov dword [esp + 0x50], ebx
mov dword [esp + 0x44], esi
cmp ebx, dword [ecx]
jl 0x4d17c0
mov al, byte [esp + 0x1b]
mov dl, byte [esp + 0x3b]
add dl, al
test byte [ebp + 0x24], 0x60
mov byte [esp + 0x50], dl
je 0x4d1abc
xor eax, eax
xor ebx, ebx
xor esi, esi
cmp ax, word [ebp + 0x2a]
jge 0x4d1ab8
mov edx, dword [esp + 0x20]
xor edi, edi
cmp dword [edx + esi*4], 0
jge 0x4d1aa0
mov eax, dword [ebp + 4]
test byte [eax + edi + 0x10], 0x60
je 0x4d1aa0
mov ecx, dword [eax + edi + 4]
xor eax, eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov word [esp + 0xd8], ax
mov dword [esp + 0xc8], 0x470df0
mov dword [esp + 0xdc], edx
test ecx, ecx
je 0x4d1a80
push ecx
lea eax, [esp + 0xc8]
push eax
call fcn.004f37b0
mov ax, word [esp + 0xe0]
add esp, 8
mov edx, dword [esp + 0x20]
cmp byte [esp + 0x1b], 0
jne 0x4d1a8f
mov ecx, 0xfffd
and ax, cx
test ax, ax
je 0x4d1aa0
mov dword [edx + esi*4], 0x1869f
mov ebx, 1
movsx eax, word [ebp + 0x2a]
inc esi
add edi, 0x14
cmp esi, eax
jl 0x4d19f6
test ebx, ebx
jne 0x4d19e0
mov dl, byte [esp + 0x50]
cmp dword [ebp + 0x38], 0
je 0x4d1b6e
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4d1b72
mov eax, dword [ebp + 4]
lea ecx, [edi + edi*4]
push dword [eax + ecx*4]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x138]
call fcn.004af3d0
add esp, 0xc
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x138]
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x4d1b19
mov ecx, dword [esp + 0xe0]
mov dword [eax + 0xf4], ecx
test edi, edi
je 0x4d3b2e
test esi, esi
je 0x4d3ad9
cmp dword [esi + 0x1f8], 0
je 0x4d3aa1
push edi
push esi
call fcn.00493c50
add esp, 8
jmp 0x4d3b2e
mov ecx, dword [esp + 0x138]
lea eax, [ebx + ebx*4]
mov ebx, dword [esp + 0x130]
push dword [ecx + eax*4 + 8]
push str.no_such_column:__s
push ebx
call fcn.004af3d0
add esp, 0xc
mov byte [ebx + 0x11], 1
jmp 0x4d1aee
xor eax, eax
xor ecx, ecx
mov ebx, dword [esp + 0x134]
mov dword [ebx + 0x40], eax
movzx eax, dl
push eax
push dword [esp + 0x24]
mov dword [ebx + 0x44], ecx
push ebp
push dword [esp + 0x13c]
mov dword [esp + 0x9c], eax
call fcn.004b67f0
add esp, 0x10
mov edi, eax
cmp dword [esp + 0x140], 5
mov dword [esp + 0x44], edi
jne 0x4d1bb9
mov dword [esp + 0x84], 1
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [esp + 0x28], ebx
test esi, esi
je 0x4d1dc9
lea ebx, [ebx]
cmp byte [esp + 0x50], 0
jne 0x4d1d8b
cmp edi, 1
jg 0x4d1d8b
cmp esi, dword [esp + 0x30]
je 0x4d1d8b
mov eax, dword [esi + 0x24]
test eax, eax
je 0x4d1c82
xor ecx, ecx
push eax
mov dword [esp + 0xdc], ecx
lea eax, [esp + 0xc8]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], ecx
mov word [esp + 0xdc], cx
mov ecx, dword [esp + 0x24]
push eax
mov dword [esp + 0xd0], 0x470df0
mov dword [esp + 0xe4], ecx
call fcn.004f37b0
mov cx, word [esp + 0xe0]
add esp, 8
cmp byte [esp + 0x1b], 0
jne 0x4d1c72
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4d1d8b
xor eax, eax
xor ebp, ebp
xor edi, edi
cmp ax, word [esi + 0x32]
jae 0x4d1da5
xor ebx, ebx
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x20]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x4d1cb2
cwde
xor ecx, ecx
cmp dword [edx + eax*4], ecx
setge cl
jmp 0x4d1d3a
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + ebx + 4]
xor eax, eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov word [esp + 0x124], ax
mov dword [esp + 0x114], 0x470df0
mov dword [esp + 0x128], edx
test ecx, ecx
je 0x4d1d23
push ecx
lea eax, [esp + 0x114]
push eax
call fcn.004f37b0
mov ax, word [esp + 0x12c]
add esp, 8
cmp byte [esp + 0x1b], 0
jne 0x4d1d32
mov ecx, 0xfffd
and ax, cx
xor ecx, ecx
test ax, ax
setne cl
test ecx, ecx
jne 0x4d1d54
movzx eax, word [esi + 0x32]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x4d1c94
mov ebx, dword [esp + 0x28]
jmp 0x4d1da5
mov ecx, dword [esp + 0x130]
mov ebx, dword [esp + 0x28]
inc dword [ecx + 0x2c]
movzx eax, word [esi + 0x34]
mov ebp, dword [ecx + 0x2c]
add eax, ebp
cmp dword [esp + 0x140], 0xb
mov dword [ecx + 0x2c], eax
jne 0x4d1da1
cmp byte [esi + 0x36], 5
jne 0x4d1da1
mov dword [esp + 0x84], 1
jmp 0x4d1da1
mov ecx, dword [esp + 0x130]
inc dword [ecx + 0x2c]
movzx eax, word [esi + 0x34]
mov ebp, dword [ecx + 0x2c]
add eax, ebp
mov dword [ecx + 0x2c], eax
test ebp, ebp
jne 0x4d1dae
mov eax, dword [esp + 0x7c]
mov byte [ebx + eax + 1], 0
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x44]
mov dword [eax + ebx*4], ebp
inc ebx
mov esi, dword [esi + 0x14]
mov dword [esp + 0x28], ebx
test esi, esi
jne 0x4d1bd0
mov esi, dword [esp + 0x130]
mov ecx, dword [esp + 0x70]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + ebx*4], eax
cmp dword [esp + 0x84], 0
je 0x4d1dfe
mov eax, dword [esp + 0x68]
inc eax
push eax
push 1
push dword [esp + 0x84]
call sub.MSVCRT.dll_memset
add esp, 0xc
cmp byte [esi + 0x12], 0
mov ebp, dword [esp + 0x14]
jne 0x4d1e0f
or dword [ebp + 0x98], 0x10
cmp dword [esp + 0x48], 0
jne 0x4d1e22
mov dword [esp + 0x54], 0
test edi, edi
je 0x4d1e2a
mov dword [esp + 0x54], 1
mov edx, dword [esi + 0x74]
mov edi, edx
test edx, edx
jne 0x4d1e37
mov edi, esi
mov edx, esi
mov ecx, dword [esp + 0x90]
mov esi, 1
mov ebx, dword [edx + 0x54]
shl esi, cl
test ebx, esi
jne 0x4d1e61
mov eax, esi
or eax, ebx
mov dword [edx + 0x54], eax
cmp ecx, 1
jne 0x4d1e61
push edx
call fcn.004c3c20
add esp, 4
or dword [edi + 0x50], esi
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
or byte [edi + 0x14], al
mov ebx, dword [esp + 0x28]
cmp dword [esi + 0x38], 0
mov edi, dword [esp + 0x130]
jne 0x4d1ef3
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + ebx*4]
inc dword [edi + 0x2c]
cmp byte [esp + 0x3b], 0
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], edx
jne 0x4d1eb0
test ecx, ecx
jne 0x4d1eb0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4d1ec7
lea eax, [edx + 1]
mov dword [esp + 0xec], eax
movsx eax, word [esi + 0x2a]
add eax, edx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x44]
cmp byte [esp + 0x50], 0
jne 0x4d1ed6
test ecx, ecx
jne 0x4d1ed6
test eax, eax
je 0x4d1ee0
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x64], eax
mov ecx, dword [edi + 0x2c]
lea eax, [ecx + 1]
mov dword [esp + 0x78], eax
movsx eax, word [esi + 0x2a]
add eax, ecx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4d1f1d
mov eax, edi
mov dword [esp + 0xe8], eax
mov eax, dword [edi + 0xf4]
mov dword [esp + 0xe0], eax
mov eax, dword [esi]
mov dword [edi + 0xf4], eax
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x2c], 0
jne 0x4d1f7a
test eax, eax
je 0x4d1f5e
push dword [esp + 0x10]
push dword [esp + 0x84]
push dword [esp + 0x90]
push dword [esp + 0x40]
push esi
push edi
call fcn.004c30d0
add esp, 0x18
mov dword [esp + 0x88], 0
mov dword [esp + 0x80], 0
push dword [esp + 0x34]
lea eax, [esp + 0xf4]
push eax
call fcn.004cabb0
add esp, 8
test eax, eax
jne 0x4d1aee
cmp dword [esi + 0x38], 0
je 0x4d1fbe
push dword [esp + 0x140]
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0xb4]
push ebp
push dword [esp + 0x28]
push ebx
mov ebx, dword [esp + 0x148]
push ebx
push esi
push dword [esp + 0x14c]
push edi
call fcn.004ec2e0
mov edi, dword [esp + 0x40]
add esp, 0x20
mov esi, dword [esp + 0x4c]
jmp 0x4d1b01
mov eax, dword [esp + 0x4c]
dec dword [edi + 0x38]
mov edi, dword [edi + 0x38]
mov edx, dword [esp + 0x130]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
mov dword [esp + 0x54], edi
or eax, ecx
mov dword [esp + 0x60], edi
je 0x4d2065
cmp dword [edx + 0x78], 0
jne 0x4d2065
cmp byte [edx + 0x12], 0
jne 0x4d2065
cmp dword [esp + 0x14c], 0
jne 0x4d2065
inc dword [edx + 0x2c]
mov ecx, dword [ebp + 0x6c]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0xb4], eax
cmp dword [ebp + 0x70], ecx
jg 0x4d202b
push 0
push eax
push 0
push 0x45
push ebp
call fcn.00490570
mov edx, dword [esp + 0x144]
add esp, 0x14
jmp 0x4d2065
mov ebx, dword [esp + 0xb4]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x2c], 0
jne 0x4d20cc
test byte [esi + 0x24], 0x80
jne 0x4d20cc
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d2094
push dword [esp + 0x24]
push dword [esp + 0x78]
push 0
push 0x48
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2374
mov edx, dword [esp + 0x74]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d2374
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4d20da
movzx edi, word [eax + 0x32]
jmp 0x4d20dc
xor edi, edi
mov eax, dword [edx + 0x2c]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0xa0], edi
inc ebx
movsx edi, di
lea ecx, [eax + 1]
add eax, edi
add eax, ebx
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x14c], 0
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x40], eax
mov dword [edx + 0x2c], eax
jne 0x4d228e
cmp dword [esp + 0x58], 0
je 0x4d211f
movsx eax, word [esi + 0x2a]
jmp 0x4d2121
xor eax, eax
lea esi, [edi + eax]
mov eax, dword [edx + 0x28]
add esi, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
inc eax
cmp dword [esp + 0x30], 0
mov dword [edx + 0x28], eax
je 0x4d218e
lea edx, [ecx - 1]
mov ecx, dword [ebp + 0x6c]
add edx, edi
cmp dword [ebp + 0x70], ecx
jg 0x4d215b
push edx
push dword [esp + 0x60]
push 0
push 0x48
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d218e
mov ebx, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp + 0x6c]
mov dword [esp + 0xb8], edx
cmp dword [ebp + 0x70], edx
jg 0x4d21b8
push 0
push esi
push dword [esp + 0x44]
push 0x64
push ebp
call fcn.00490570
add esp, 0x14
mov dword [esp + 0xb8], eax
jmp 0x4d21e7
lea eax, [edx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebp + 0x68]
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4d2236
push eax
push dword [esp + 0x134]
call fcn.004c1840
mov edx, eax
add esp, 8
test edx, edx
je 0x4d2232
mov word [edx + 8], si
mov eax, dword [ebp]
cmp byte [eax + 0x51], 0
je 0x4d2220
push edx
push 0xfffffffffffffff7
push eax
call fcn.0047d1f0
add esp, 0xc
jmp 0x4d2232
mov eax, dword [ebp + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x2c], 0
je 0x4d23d4
push dword [esp + 0x80]
mov ecx, dword [esp + 0x138]
push dword [esp + 0x8c]
mov ebp, dword [esp + 0x44]
push dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x148]
push ecx
push eax
push ebp
push dword [esp + 0x14c]
call fcn.004ebe90
mov edx, dword [esp + 0x150]
add esp, 0x20
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x5c]
je 0x4d228e
mov dword [esp + 0x10], ebp
cmp dword [esp + 0x2c], 0
je 0x4d2370
mov eax, dword [edx + 0x74]
test eax, eax
jne 0x4d22a2
mov eax, edx
mov ebp, dword [esp + 0xe0]
xor esi, esi
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0xe4]
mov byte [eax + 0x14], 1
mov dword [esp + 0x28], esi
mov dword [esp + 0x40], ecx
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x14c], 0
jne 0x4d2b67
cmp dword [esp + 0x2c], 0
jne 0x4d22f2
cmp esi, 2
je 0x4d22f2
push dword [esp + 0xac]
call fcn.004e5850
add esp, 4
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4d27cf
mov ecx, dword [esp + 0x28]
xor esi, esi
test ecx, ecx
je 0x4d232e
mov edx, dword [esp + 0x7c]
test ebp, ebp
js 0x4d231d
mov eax, ebp
sub eax, dword [esp + 0x98]
mov byte [eax + edx], 0
test edi, edi
js 0x4d232e
mov eax, edi
sub eax, dword [esp + 0x98]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x4d276e
mov ecx, dword [esp + 0x68]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x4d276e
mov esi, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], esi
jg 0x4d273b
push 0
push 0
push 0
push 0x11
push ebx
call fcn.00490570
add esp, 0x14
mov esi, eax
jmp 0x4d276e
mov edi, dword [esp + 0x54]
cmp dword [esp + 0x14c], 0
je 0x4d23d4
push 0x10
push edi
push dword [esp + 0x3c]
mov esi, 1
mov dword [esp + 0xb8], 0
push dword [esp + 0x13c]
mov dword [esp + 0x38], esi
call fcn.004b2d40
mov edi, dword [esp + 0xf4]
add esp, 0x10
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0x90], edi
mov dword [esp + 0xa4], ebp
jmp 0x4d24a9
mov ecx, dword [esp + 0x130]
mov eax, 0x1004
cmp byte [ecx + 0x12], 0
jne 0x4d240a
cmp dword [esp + 0x48], 0
jne 0x4d240a
cmp dword [esp + 0x44], 0
jne 0x4d240a
cmp byte [esp + 0x50], 0
jne 0x4d240a
cmp dword [esp + 0x84], 0
jne 0x4d240a
mov eax, 0x100c
push dword [esp + 0x94]
mov ebp, dword [esp + 0x38]
push eax
push 0
push 0
push ebp
push dword [esp + 0x148]
push ecx
call fcn.004e2e20
add esp, 0x1c
mov dword [esp + 0xac], eax
test eax, eax
je 0x4d3a94
movzx esi, byte [eax + 0x2e]
mov edx, dword [eax + 0x30]
mov ebp, dword [eax + 0x14]
and edx, 1
mov edi, dword [eax + 0x18]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x28], esi
mov dword [esp + 0xa8], edx
cmp esi, 1
je 0x4d24a9
mov ecx, dword [esp + 0x130]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4d2478
mov eax, ecx
mov byte [eax + 0x14], 1
cmp esi, 2
jne 0x4d24a9
test edi, edi
js 0x4d24a9
mov ecx, dword [esp + 0x10]
cmp edi, ecx
je 0x4d24ad
mov edx, dword [esp + 0x7c]
mov eax, edi
sub eax, dword [esp + 0x98]
xor ecx, ecx
cmp byte [eax + edx], cl
setne cl
dec ecx
and esi, ecx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
test byte [eax + 0x24], 0x80
jne 0x4d258e
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d24e2
push 0
push dword [esp + 0x28]
push dword [esp + 0x18]
push 0x7f
push edx
call fcn.00490570
mov edx, dword [esp + 0x38]
add esp, 0x14
jmp 0x4d2515
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
jne 0x4d22c5
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x70]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4d2556
push esi
push edx
push dword [esp + 0x7c]
push 0x93
push ebx
call fcn.00490570
add esp, 0x14
jmp 0x4d22c9
mov edx, dword [esp + 0x74]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x93
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d22c9
mov eax, dword [esp + 0xa0]
xor esi, esi
movsx ebx, ax
test ebx, ebx
jle 0x4d25db
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
add eax, esi
push eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push ecx
push edi
push ebp
call fcn.004b0240
mov ecx, dword [esp + 0x24]
inc esi
add esp, 0x14
cmp esi, ebx
jl 0x4d25a6
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4d2639
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x4d2625
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
cmp byte [edx + 0x51], 0
jne 0x4d2625
mov eax, dword [eax + 0x68]
lea ecx, [ecx + ecx*4]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.0047d1f0
mov word [esi], 0xad
add esp, 0xc
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x40], eax
jmp 0x4d22c5
push dword [esp + 0x30]
push dword [esp + 0x50]
call fcn.004bf730
mov ecx, dword [esp + 0x1c]
add esp, 8
mov esi, eax
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x4d266f
push dword [esp + 0x40]
push ebx
push dword [esp + 0x64]
push 0x5b
push ecx
call fcn.00490570
add esp, 0x14
mov edx, eax
jmp 0x4d26a9
mov edi, dword [esp + 0x5c]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x90]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
je 0x4d26c7
cmp ebx, 0xfffffff4
je 0x4d2713
push esi
push ebx
push eax
call fcn.0047d1f0
add esp, 0xc
jmp 0x4d2713
test edx, edx
jns 0x4d26cf
mov edx, dword [ecx + 0x6c]
dec edx
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x68]
lea eax, [eax + ecx*4]
test ebx, ebx
jns 0x4d2707
cmp byte [eax + 1], 0
jne 0x4d2707
cmp ebx, 0xfffffffd
jne 0x4d26f3
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
jmp 0x4d2713
test esi, esi
je 0x4d2713
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x4d2713
inc dword [esi + 0xc]
jmp 0x4d2713
push ebx
push esi
push eax
push edx
call fcn.004ed1b0
add esp, 0x10
push ebx
push dword [esp + 0x60]
mov ebx, dword [esp + 0x1c]
push dword [esp + 0x48]
push dword [esp + 0x48]
push 0x82
push ebx
call fcn.004d4bf0
mov esi, dword [esp + 0x40]
add esp, 0x18
jmp 0x4d22c9
lea eax, [esi + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push 0
push dword [esp + 0x84]
push dword [esp + 0xa4]
push 0
push 0x61
push dword [esp + 0x34]
push dword [esp + 0x14c]
call fcn.004c3a10
add esp, 0x20
test esi, esi
je 0x4d27cb
mov edx, dword [ebx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x4d27aa
mov dword [ebx + 0x6c], eax
jmp 0x4d27cb
test esi, esi
jns 0x4d27b0
mov esi, eax
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x4d27bf
mov eax, 0x530d04
jmp 0x4d27c8
mov eax, dword [ebx + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4d2889
test eax, eax
jne 0x4d280e
mov eax, dword [esp + 0x10]
cmp ebp, eax
je 0x4d280e
mov ebx, dword [esp + 0x40]
cmp edi, eax
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x54]
je 0x4d281a
push dword [esp + 0x9c]
push ebx
push edi
push eax
push 0x1d
push ebp
call fcn.004d4bf0
add esp, 0x18
jmp 0x4d281a
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x14]
cmp esi, 1
je 0x4d2830
mov eax, dword [esp + 0x130]
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x30], 0
mov edx, ebx
jne 0x4d283d
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d2859
push 0
push edi
push edx
push 0x32
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2b6b
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d2b6b
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x4d2950
cmp dword [esp + 0x2c], edx
jne 0x4d2950
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x54]
mov ebx, dword [ebp + 0x6c]
mov dword [esp + 0x60], ebx
cmp dword [ebp + 0x70], ebx
jg 0x4d28d3
push dword [esp + 0x24]
push edi
push dword [esp + 0x7c]
push 0x2a
push ebp
call fcn.00490570
mov edi, dword [esp + 0x38]
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x60], ebx
jmp 0x4d2902
mov edx, dword [esp + 0x74]
lea eax, [ebx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x2a
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d2920
push edi
push ebx
push dword [esp + 0x18]
push 0x20
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2b6b
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d2b6b
mov esi, dword [esp + 0x130]
mov ebp, dword [esp + 0x14]
dec dword [esi + 0x38]
mov ecx, dword [ebp + 0x6c]
mov ebx, dword [esi + 0x38]
mov dword [esp + 0x60], ebx
cmp dword [ebp + 0x70], ecx
jg 0x4d298a
mov edi, dword [esp + 0x54]
push 0
push edi
mov edi, dword [esp + 0x44]
push edi
push 0x25
push ebp
call fcn.00490570
mov edx, dword [esp + 0x44]
add esp, 0x14
jmp 0x4d29c1
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x6c]
mov dword [esp + 0xc0], ecx
test eax, eax
je 0x4d2b07
cmp dword [esp + 0x58], 0
jne 0x4d2b76
test edx, edx
je 0x4d2a70
mov eax, dword [esp + 0xa0]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4d2a56
mov ebx, dword [esp + 0x5c]
mov edi, edi
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d2a1e
lea eax, [esi + ebx]
push eax
push esi
push dword [esp + 0x44]
push 0x59
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2a4d
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 4], eax
lea eax, [esi + ebx]
mov dword [ecx + 0xc], eax
inc esi
cmp esi, edi
jl 0x4d2a00
mov ebx, dword [esp + 0x60]
push edi
push dword [esp + 0x60]
push ebx
push dword [esp + 0x1c]
push 0x1d
push ebp
call fcn.004d4bf0
add esp, 0x18
jmp 0x4d2b6b
cmp dword [ebp + 0x70], ecx
jg 0x4d2a8d
mov edi, dword [esp + 0x24]
push 0
push edi
push dword [esp + 0x44]
push 0x7f
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2abc
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d2ada
push edi
push ebx
push dword [esp + 0x18]
push 0x20
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2b72
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d2b72
cmp dword [ebp + 0x70], ecx
jg 0x4d2b20
push 0
push dword [esp + 0x44]
push edi
push 0x7e
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2b4f
mov edx, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x44]
push ebx
push dword [esp + 0x1c]
push 0x1d
push ebp
call fcn.004d4bf0
add esp, 0x18
jmp 0x4d2b72
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x130]
mov eax, dword [esp + 0x2c]
cmp byte [esp + 0x1b], 0
je 0x4d2caa
mov edi, dword [esp + 0x64]
test eax, eax
jne 0x4d2c13
cmp dword [esi + 8], eax
je 0x4d2c61
mov ebx, dword [esp + 0xb0]
push edi
push ebx
push esi
call fcn.004b1460
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x4d2c61
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x130]
and ecx, 0x200000
neg ecx
sbb cl, cl
mov edx, dword [eax + 8]
add cl, 0x4e
movzx ebx, cl
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d2be7
push 0
push edi
push esi
push ebx
push edx
call fcn.00490570
add esp, 0x14
jmp 0x4d2c61
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
xor edx, edx
mov byte [eax + ecx*4], bl
mov word [eax + ecx*4 + 2], dx
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
mov byte [eax + ecx*4 + 1], dl
jmp 0x4d2c61
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d2c32
mov edx, dword [esp + 0x6c]
push edi
push edx
push dword [esp + 0x44]
push 0x59
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2c61
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d2c7b
push 0
push 0
push edi
push 0xf
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d2caa
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x3b], 0
jne 0x4d2d64
cmp dword [esp + 0x44], 0
jne 0x4d2d6f
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4d2f21
xor ebx, ebx
push dword [esp + 0x140]
push dword [esp + 0x20]
push 3
push 0
push dword [esp + 0x148]
push dword [esp + 0x5c]
push dword [esp + 0x148]
call fcn.004d0970
mov ecx, dword [esp + 0x38]
or ebx, eax
xor eax, eax
mov dword [esp + 0x84], ebx
add esp, 0x1c
xor esi, esi
cmp ax, word [ecx + 0x2a]
jge 0x4d2e35
xor ebp, ebp
mov edi, ebx
test byte [ecx + 0x24], 0x20
mov ebx, dword [ecx + 4]
je 0x4d2d92
movzx eax, si
test ax, ax
js 0x4d2d92
movsx ecx, ax
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x4d2d43
lea eax, [ebx + 0x10]
mov edi, ecx
test byte [eax], 0x20
jne 0x4d2d3d
inc edx
add eax, 0x14
dec ecx
jne 0x4d2d37
lea eax, [edi + edi*4]
test byte [ebx + eax*4 + 0x10], 0x20
je 0x4d2d89
mov eax, dword [esp + 0x1c]
mov ax, word [eax + 0x2c]
sub ax, dx
add ax, di
mov edi, dword [esp + 0x68]
movzx eax, ax
jmp 0x4d2d95
cmp dword [esp + 0x44], 0
je 0x4d2ccc
push dword [esp + 0x1c]
push dword [esp + 0x134]
call fcn.004b66e0
add esp, 8
mov ebx, eax
jmp 0x4d2cce
mov edi, dword [esp + 0x68]
movzx eax, dx
jmp 0x4d2d95
movzx eax, si
movsx edx, ax
add edx, dword [esp + 0xec]
cmp edi, 0xffffffff
je 0x4d2e0b
cmp esi, 0x20
jge 0x4d2db6
mov eax, 1
mov ecx, esi
shl eax, cl
test edi, eax
jne 0x4d2e0b
movzx eax, word [ebx + ebp + 0x10]
test al, 1
jne 0x4d2e0b
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4d2dda
push 0
push edx
push 0
push 0x48
push ebx
call fcn.00490570
jmp 0x4d2e1e
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d2e21
push edx
push esi
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x24]
call fcn.004b0240
add esp, 0x14
mov ecx, dword [esp + 0x1c]
inc esi
add ebp, 0x14
movsx eax, word [ecx + 0x2a]
cmp esi, eax
jl 0x4d2d16
cmp byte [esp + 0x1b], 0
mov edi, dword [esp + 0x14]
jne 0x4d2e69
cmp dword [esp + 0x30], 0
jne 0x4d2e69
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d2ee9
mov edx, dword [esp + 0x64]
push 0
push edx
push dword [esp + 0x2c]
push 0x4d
push edi
call fcn.00490570
add esp, 0x14
mov eax, dword [esp + 0x48]
push dword [esp + 0x140]
push dword [esp + 0x20]
push 1
push 1
push dword [esp + 0x148]
push eax
push dword [esp + 0x148]
call fcn.004d0970
mov edx, dword [esp + 0x94]
mov ebx, eax
mov eax, dword [esp + 0x38]
add esp, 0x1c
xor ebp, ebp
mov dword [esp + 0x6c], ebx
mov esi, edx
movsx ecx, word [eax + 0x2a]
test ecx, ecx
jle 0x4d3047
xor edx, edx
mov dword [esp + 0x68], edx
lea ebx, [ebx]
movsx eax, word [eax + 0x28]
cmp ebp, eax
jne 0x4d2f2a
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d3181
push 0
push esi
push 0
push 0x48
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4d3024
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d2e69
mov edi, dword [esp + 0x14]
jmp 0x4d2e6d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0x10]
test al, 0x60
je 0x4d2f48
test al, 0x20
je 0x4d3024
dec esi
jmp 0x4d3024
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebp*4]
test eax, eax
js 0x4d3145
cmp dword [esp + 0x2c], 0
je 0x4d2fbd
cmp dword [esp + 0x58], 0
jne 0x4d2f6f
mov ecx, dword [esp + 0xa0]
movsx ecx, cx
lea edx, [ecx + eax]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d2f90
push esi
push edx
push dword [esp + 0x44]
push 0x59
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4d3024
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d3024
mov ecx, dword [esp + 0x138]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + eax*4 + 4]
mov eax, dword [esp + 0x130]
cmp dword [eax + 8], 0
je 0x4d3020
push esi
push ebx
push eax
call fcn.004b1460
mov edi, eax
add esp, 0xc
cmp edi, esi
je 0x4d3020
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x130]
and ecx, 0x200000
neg ecx
sbb cl, cl
mov edx, dword [eax + 8]
add cl, 0x4e
movzx ebx, cl
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d3116
push 0
push esi
push edi
push ebx
push edx
call fcn.00490570
add esp, 0x14
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
inc ebp
add dword [esp + 0x68], 0x14
inc esi
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x14]
movsx ecx, word [eax + 0x2a]
cmp ebp, ecx
jl 0x4d2ec0
mov edx, dword [esp + 0x78]
test byte [eax + 0x24], 0x60
mov ebx, dword [esp + 0x130]
je 0x4d3063
push eax
push edx
push ebx
call fcn.004ab9e0
mov eax, dword [esp + 0x28]
add esp, 0xc
test byte [esp + 0xbc], 1
je 0x4d32f9
push dword [esp + 0x78]
mov ebp, dword [esp + 0x18]
push eax
push ebp
call fcn.004d0430
mov eax, dword [esp + 0x54]
add esp, 0xc
mov edi, dword [esp + 0x60]
mov esi, eax
test eax, eax
je 0x4d30d9
mov ebp, dword [esp + 0x1c]
cmp byte [esi + 8], 0x7f
jne 0x4d30ce
cmp byte [esi + 9], 1
jne 0x4d30ce
push dword [esp + 0x138]
push dword [esi + 0x10]
call fcn.00470d20
add esp, 8
test eax, eax
je 0x4d30ce
push edi
push dword [esp + 0x144]
push dword [esp + 0x2c]
push ebp
push esi
push ebx
call fcn.004aac20
add esp, 0x18
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x4d3095
mov ebp, dword [esp + 0x14]
cmp dword [esp + 0x58], 0
jne 0x4d35da
cmp dword [esp + 0x30], 0
je 0x4d3255
mov edx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], edx
jg 0x4d31d8
push dword [esp + 0x40]
push edi
push dword [esp + 0x18]
push 0x1d
push ebp
call fcn.00490570
add esp, 0x14
mov edx, eax
jmp 0x4d3207
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
xor edx, edx
mov byte [eax + ecx*4], bl
mov word [eax + ecx*4 + 2], dx
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
mov byte [eax + ecx*4 + 1], dl
jmp 0x4d3020
test dword [esp + 0xbc], 1
je 0x4d31b5
cmp ebp, 0x1f
jg 0x4d31b5
mov eax, 1
mov ecx, ebp
shl eax, cl
test ebx, eax
jne 0x4d31b5
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d3181
push 0
push esi
push 0
push 0x48
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4d3024
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d3024
push esi
push ebp
push dword [esp + 0x18]
push dword [esp + 0x28]
push edi
call fcn.004b0240
add esp, 0x14
mov dword [esp + 0xa8], 0
jmp 0x4d3024
mov esi, dword [esp + 0x10]
lea eax, [edx + 1]
mov ebx, dword [esp + 0x40]
lea ecx, [edx + edx*4]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp]
cmp byte [eax + 0x51], 0
jne 0x4d3226
mov eax, dword [ebp + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x9c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
xor ebx, ebx
mov eax, dword [esp + 0x78]
xor esi, esi
mov edi, eax
cmp bx, word [ecx + 0x2a]
jge 0x4d32e0
mov eax, dword [ecx + 4]
movzx eax, word [ebx + eax + 0x10]
test al, 0x60
je 0x4d32a4
test al, 0x20
je 0x4d32c7
dec edi
jmp 0x4d32c7
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d3273
push dword [esp + 0x24]
push edi
push dword [esp + 0x18]
push 0x20
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d3226
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d322a
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*4], 0
jge 0x4d32c7
movsx eax, word [ecx + 0x28]
cmp esi, eax
je 0x4d32c7
push edi
push esi
push edx
push ecx
push ebp
call fcn.004b0240
mov ecx, dword [esp + 0x30]
add esp, 0x14
movsx eax, word [ecx + 0x2a]
inc esi
mov edx, dword [esp + 0x10]
add ebx, 0x14
inc edi
cmp esi, eax
jl 0x4d3242
mov eax, dword [esp + 0x78]
test byte [ecx + 0x24], 0x60
je 0x4d330c
push ecx
push eax
push dword [esp + 0x138]
call fcn.004ab9e0
add esp, 0xc
jmp 0x4d3308
cmp dword [esp + 0x58], 0
jne 0x4d35da
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x60]
lea eax, [esp + 0x84]
mov edi, dword [esp + 0x140]
push 0
push dword [esp + 0x24]
mov esi, dword [esp + 0x18]
push eax
push ebx
push edi
push dword [esp + 0x64]
push dword [esp + 0x3c]
push dword [esp + 0x80]
push dword [esp + 0xb4]
push esi
push dword [esp + 0x98]
push ecx
push dword [esp + 0x160]
call fcn.004bb740
add esp, 0x34
cmp dword [esp + 0x84], 0
jne 0x4d336a
cmp byte [esp + 0x50], 0
je 0x4d33e0
cmp dword [esp + 0x30], 0
je 0x4d3492
mov edx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], edx
jg 0x4d3392
push dword [esp + 0x40]
push ebx
push esi
push 0x1d
push ebp
call fcn.00490570
add esp, 0x14
mov edx, eax
jmp 0x4d33c1
mov ebx, dword [esp + 0x60]
lea eax, [edx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp]
cmp byte [eax + 0x51], 0
jne 0x4d33e0
mov eax, dword [ebp + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x9c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x44]
test esi, esi
je 0x4d340d
push dword [esp + 0x8c]
push dword [esp + 0x24]
push 0
push edx
push dword [esp + 0x2c]
push dword [esp + 0x144]
call fcn.004b59c0
add esp, 0x18
push 0xffffffffffffffff
push dword [esp + 0x74]
push dword [esp + 0x9c]
push dword [esp + 0x1c]
push dword [esp + 0x2c]
push dword [esp + 0x144]
call fcn.004be0b0
add esp, 0x18
cmp dword [esp + 0xa8], 0
je 0x4d345d
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d34e0
push 0
push 0
push dword [esp + 0x18]
push 0x87
push ebp
call fcn.00490570
add esp, 0x14
mov edx, dword [esp + 0x10]
cmp esi, 1
jg 0x4d3471
cmp byte [esp + 0x50], 0
je 0x4d3547
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d3518
push 0
push 0
push edx
push 0x7a
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d3547
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d34b0
push dword [esp + 0x24]
push ebx
push esi
push 0x20
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d33e0
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d33e4
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d3461
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x7a
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [esp + 0x8c]
test esi, esi
je 0x4d3570
push ebp
push dword [esp + 0x24]
push dword [esp + 0x6c]
push 0
push dword [esp + 0x2c]
push dword [esp + 0x144]
call fcn.004b59c0
add esp, 0x18
mov esi, dword [esp + 0x28]
xor eax, eax
cmp esi, 2
push 0
setne al
push 0
dec eax
and eax, 2
or eax, 4
push eax
push dword [esp + 0x7c]
push dword [esp + 0x74]
push dword [esp + 0xa8]
push dword [esp + 0x28]
push dword [esp + 0x38]
push dword [esp + 0x150]
call fcn.004ab7d0
add esp, 0x24
cmp dword [esp + 0x44], 0
je 0x4d35e9
push ebp
push dword [esp + 0x24]
push dword [esp + 0x2c]
push dword [esp + 0x144]
push dword [esp + 0x2c]
push dword [esp + 0x144]
call fcn.004b5930
add esp, 0x18
jmp 0x4d35e9
mov edi, dword [esp + 0x140]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0x14]
test edx, edx
je 0x4d3645
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d3612
push 0
push 1
push edx
push 0x52
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d3645
mov ebx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4d36a5
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x130]
cmp byte [eax + 8], 0x7f
jne 0x4d3692
cmp byte [eax + 9], 2
jne 0x4d3692
push dword [esp + 0x138]
push dword [eax + 0x10]
call fcn.00470d20
add esp, 8
test eax, eax
je 0x4d368e
push ebx
push edi
push dword [esp + 0x2c]
push esi
push dword [esp + 0x58]
push ebp
call fcn.004aac20
add esp, 0x18
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4d3658
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
cmp esi, 1
je 0x4d37c4
cmp esi, 2
jne 0x4d36fc
mov ecx, dword [ebp + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4d36df
push ebx
push ebp
push ecx
call fcn.0049f060
add esp, 0xc
push dword [esp + 0xac]
call fcn.004e5850
add esp, 4
jmp 0x4d37c4
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp + 0x6c]
push dword [esp + 0xac]
mov dword [ecx + ebx*4], eax
call fcn.004e5850
add esp, 4
jmp 0x4d37c4
cmp dword [esp + 0x30], 0
jne 0x4d3748
cmp dword [esp + 0x2c], 0
jne 0x4d3748
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d3727
push 0
push ebx
push 0
push 0xb
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d37c4
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
jmp 0x4d37b4
mov ecx, dword [ebp + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4d3762
push ebx
push ebp
push ecx
call fcn.0049f060
add esp, 0xc
jmp 0x4d376b
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp + 0x6c]
mov dword [ecx + ebx*4], eax
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d378e
mov edx, dword [esp + 0xc0]
push 0
push edx
push dword [esp + 0x44]
push 5
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d37c4
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc0]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4d37e2
push edx
push ebp
push ecx
call fcn.0049f060
add esp, 0xc
jmp 0x4d37eb
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x130]
cmp byte [eax + 0x12], 0
jne 0x4d3817
cmp dword [eax + 0x78], 0
jne 0x4d3817
mov ecx, dword [esp + 0x14c]
test ecx, ecx
jne 0x4d3817
cmp dword [eax + 0x70], ecx
je 0x4d3817
push eax
call fcn.0046cad0
add esp, 4
mov edx, dword [esp + 0xb4]
test edx, edx
je 0x4d1aee
mov ecx, dword [ebp + 0x6c]
cmp dword [ebp + 0x70], ecx
jg 0x4d3840
push 0
push 1
push edx
push 0x50
push ebp
call fcn.00490570
add esp, 0x14
jmp 0x4d386f
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, word [ebp + 0x90]
mov esi, dword [ebp]
test ax, ax
je 0x4d3944
add eax, eax
push eax
push dword [ebp + 0x74]
call fcn.0049d550
mov edi, dword [ebp + 0x74]
add esp, 8
test edi, edi
je 0x4d3944
test esi, esi
je 0x4d38ef
cmp dword [esi + 0x1f8], 0
je 0x4d38b7
push edi
push esi
call fcn.00493c50
add esp, 8
jmp 0x4d3944
cmp edi, dword [esi + 0x14c]
jae 0x4d38ef
cmp edi, dword [esi + 0x144]
jb 0x4d38d7
mov eax, dword [esi + 0x140]
mov dword [edi], eax
mov dword [esi + 0x140], edi
jmp 0x4d3944
cmp edi, dword [esi + 0x148]
jb 0x4d38ef
mov eax, dword [esi + 0x138]
mov dword [edi], eax
mov dword [esi + 0x138], edi
jmp 0x4d3944
cmp dword [0x52e2d8], 0
je 0x4d393a
mov eax, dword [0x530c58]
test eax, eax
je 0x4d390b
push eax
call dword [0x52e328]
add esp, 4
push edi
call dword [0x52e304]
sub dword [0x530be8], eax
dec dword [0x530c0c]
push edi
call dword [0x52e2fc]
mov eax, dword [0x530c58]
add esp, 8
test eax, eax
je 0x4d3944
push eax
call dword [0x52e330]
jmp 0x4d3941
push edi
call dword [0x52e2fc]
add esp, 4
push 0
push 0x50
mov ebx, 1
push esi
mov word [ebp + 0x90], bx
call fcn.004ad310
add esp, 0xc
mov dword [ebp + 0x74], eax
test eax, eax
je 0x4d3980
mov dword [eax + 0x20], esi
mov word [eax + 8], bx
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], esi
mov word [eax + 0x30], bx
mov dword [eax + 0x40], 0
mov eax, dword [ebp]
cmp byte [eax + 0x51], 0
jne 0x4d1aee
mov esi, dword [ebp + 0x74]
mov eax, 0x2400
mov edi, 0x202
test word [esi + 8], ax
jne 0x4d39a6
cmp dword [esi + 0x18], 0
je 0x4d39af
push esi
call fcn.004ee330
add esp, 4
xor eax, eax
mov dword [esi + 0x10], str.rows_updated
cmp eax, fcn.004c3810
jne 0x4d3a51
mov eax, dword [esi + 0x20]
mov dword [esi + 0x14], str.rows_updated
test eax, eax
je 0x4d3a2d
cmp dword [eax + 0x14c], str.rows_updated
jbe 0x4d3a2d
cmp dword [eax + 0x144], str.rows_updated
ja 0x4d3a04
mov eax, pe_nt_image_headers32
mov dword [esi + 0xc], 0xc
mov dword [esi + 0x18], eax
mov word [esi + 8], di
mov byte [esi + 0xa], bl
jmp 0x4d1aee
cmp dword [eax + 0x148], str.rows_updated
ja 0x4d3a2d
movzx eax, word [eax + 0x11e]
mov dword [esi + 0x18], eax
mov dword [esi + 0xc], 0xc
mov word [esi + 8], di
mov byte [esi + 0xa], bl
jmp 0x4d1aee
push str.rows_updated
call dword [0x52e304]
add esp, 4
mov dword [esi + 0x18], eax
mov dword [esi + 0xc], 0xc
mov word [esi + 8], di
mov byte [esi + 0xa], bl
jmp 0x4d1aee
mov edi, 0xa02
mov dword [esi + 0x24], eax
mov dword [esi + 0xc], 0xc
mov word [esi + 8], di
mov byte [esi + 0xa], bl
jmp 0x4d1aee
mov eax, dword [esp + 0x148]
mov ebp, dword [esp + 0x13c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x88], eax
jmp 0x4d1afa
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x4c]
jmp 0x4d1afa
cmp edi, dword [esi + 0x14c]
jae 0x4d3ad9
cmp edi, dword [esi + 0x144]
jb 0x4d3ac1
mov eax, dword [esi + 0x140]
mov dword [edi], eax
mov dword [esi + 0x140], edi
jmp 0x4d3b2e
cmp edi, dword [esi + 0x148]
jb 0x4d3ad9
mov eax, dword [esi + 0x138]
mov dword [edi], eax
mov dword [esi + 0x138], edi
jmp 0x4d3b2e
cmp dword [0x52e2d8], 0
je 0x4d3b24
mov eax, dword [0x530c58]
test eax, eax
je 0x4d3af5
push eax
call dword [0x52e328]
add esp, 4
push edi
call dword [0x52e304]
sub dword [0x530be8], eax
dec dword [0x530c0c]
push edi
call dword [0x52e2fc]
mov eax, dword [0x530c58]
add esp, 8
test eax, eax
je 0x4d3b2e
push eax
call dword [0x52e330]
jmp 0x4d3b2b
push edi
call dword [0x52e2fc]
add esp, 4
push dword [esp + 0x134]
push esi
call fcn.004cf2d0
add esp, 8
test ebx, ebx
je 0x4d3b4c
push ebx
push esi
call fcn.0047a120
add esp, 8
test ebp, ebp
je 0x4d3b5a
push ebp
push esi
call fcn.004b2a40
add esp, 8
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4d3b6f
push eax
push esi
call fcn.0047a120
add esp, 8
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4d3b84
push eax
push esi
call fcn.004b2a40
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret