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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x578c0c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3e0
movzx eax, word [ebp + 0xc]
cmp eax, 0x21f0
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
jg 0x4d6f9c
je 0x4d6e7f
cmp eax, 0x2111
jg 0x4d52b8
je 0x4d49c7
cmp eax, 0x201f
jg 0x4d42a6
je 0x4d41fd
cmp eax, 0x1101
je 0x4d3de7
cmp eax, 0x2001
jne case.default.0x4d6fbb
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne case.default.0x4d6fbb
push 0
push 0x5f09ec
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0xc8
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d3d46
push eax
call fcn.00502ab0
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d3d8e
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x1c]
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
mov ebx, dword [0x892d48]
test ebx, ebx
je 0x4d3d9f
call fcn.00408310
jmp 0x4d3da9
push 0x8993b8
call fcn.00406390
mov esi, dword [0x8927a4]
call fcn.00431fe0
mov esi, dword [0x892d3c]
push 0x6000
call fcn.00450180
mov ecx, dword [0x892d3c]
push ecx
call fcn.00450320
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d3e33
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x1c]
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
mov esi, dword [esp + 0x20]
mov edi, dword [ebp + 0x10]
cmp word [edi], 0
jne case.default.0x4d6fbb
add edi, 2
xor ebx, ebx
mov bx, word [edi]
add edi, 2
test bx, bx
mov dword [esp + 0x10], ebx
jbe 0x4d3f73
movzx eax, bx
imul eax, eax, 0x2c
push eax
call fcn.0055e5a4
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x3f4], 1
je 0x4d3e95
mov edx, dword [esp + 0x14]
push 0x4d3a30
movzx eax, bx
push eax
push 0x2c
push edx
call fcn.004d72a0
mov eax, dword [esp + 0x14]
jmp 0x4d3e97
xor eax, eax
test bx, bx
mov dword [esp + 0x3f4], 0xffffffff
mov dword [esi + 0x2ac], eax
jbe 0x4d3f73
movzx ecx, bx
xor eax, eax
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
mov ecx, dword [edi]
mov edx, dword [esi + 0x2ac]
mov dword [eax + edx], ecx
mov edx, dword [esi + 0x2ac]
mov ecx, dword [edi + 4]
add edi, 4
mov dword [edx + eax + 4], ecx
mov edx, dword [esi + 0x2ac]
lea ecx, [edx + eax + 4]
mov edx, dword [ecx]
test edx, edx
je 0x4d3eef
neg edx
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x2ac]
mov dword [ecx + eax + 8], edx
mov ecx, dword [esi + 0x2ac]
add edi, 4
lea edx, [ecx + eax + 0xc]
add edi, 4
mov ecx, edi
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [edx + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [edx + 0xc], ebx
mov ecx, dword [ecx + 0x10]
mov dword [edx + 0x10], ecx
mov ecx, dword [edi + 0x14]
mov edx, dword [esi + 0x2ac]
add edi, 0x14
mov dword [edx + eax + 0x20], ecx
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x2ac]
add edi, 4
mov dword [edx + eax + 0x24], ecx
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x2ac]
add edi, 4
mov dword [edx + eax + 0x28], ecx
mov ecx, dword [esp + 0x14]
add edi, 4
add eax, 0x2c
dec ecx
mov dword [esp + 0x14], ecx
jne 0x4d3ec0
mov ebx, dword [esp + 0x10]
mov word [esi + 0x27a], bx
xor ebx, ebx
mov bx, word [edi]
add edi, 2
test bx, bx
mov dword [esp + 0x10], ebx
jbe 0x4d40c2
movzx eax, bx
imul eax, eax, 0x3c
push eax
call fcn.0055e5a4
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x3f4], 2
je 0x4d3fcc
mov edx, dword [esp + 0x14]
push 0x4d3a60
movzx eax, bx
push eax
push 0x3c
push edx
call fcn.004d72a0
mov eax, dword [esp + 0x14]
jmp 0x4d3fce
xor eax, eax
test bx, bx
mov dword [esi + 0x2ec], eax
jbe 0x4d40c2
movzx ecx, bx
xor eax, eax
mov dword [esp + 0x14], ecx
jmp 0x4d3ff0
mov ecx, dword [edi]
mov edx, dword [esi + 0x2ec]
mov dword [eax + edx], ecx
mov edx, dword [esi + 0x2ec]
mov ecx, dword [edi + 4]
add edi, 4
mov dword [edx + eax + 4], ecx
mov edx, dword [esi + 0x2ec]
lea ecx, [edx + eax + 4]
mov edx, dword [ecx]
test edx, edx
je 0x4d401f
neg edx
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x2ec]
mov dword [ecx + eax + 8], edx
mov ecx, dword [esi + 0x2ec]
lea edx, [ecx + eax + 0xc]
add edi, 4
add edi, 4
mov ecx, edi
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [edx + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [edx + 0xc], ebx
mov ecx, dword [ecx + 0x10]
mov dword [edx + 0x10], ecx
mov ecx, dword [edi + 0x14]
mov edx, dword [esi + 0x2ec]
mov dword [edx + eax + 0x20], ecx
mov edx, dword [esi + 0x2ec]
add edi, 0x14
mov ecx, dword [edi + 4]
mov dword [edx + eax + 0x24], ecx
mov edx, dword [esi + 0x2ec]
add edi, 4
mov ecx, dword [edi + 4]
mov dword [edx + eax + 0x28], ecx
mov edx, dword [esi + 0x2ec]
add edi, 4
lea ecx, [edx + eax + 0x2c]
add edi, 4
mov edx, edi
mov ebx, dword [edx]
mov dword [ecx], ebx
mov ebx, dword [edx + 4]
mov dword [ecx + 4], ebx
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x14]
add edi, 0xc
add eax, 0x3c
dec ecx
mov dword [esp + 0x14], ecx
jne 0x4d3ff0
mov ebx, dword [esp + 0x10]
mov word [esi + 0x27c], bx
mov al, byte [edi]
inc edi
test al, al
je 0x4d4146
mov eax, dword [edi]
add edi, 4
mov dword [esi + 0x280], eax
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x284], eax
je 0x4d40ef
neg eax
mov dword [esi + 0x284], eax
mov ecx, dword [edi + 4]
add edi, 4
mov dword [esi + 0x288], ecx
add edi, 4
mov eax, edi
mov ecx, dword [eax]
lea edx, [esi + 0x28c]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [edx + 0xc], ecx
mov eax, dword [eax + 0x10]
add edi, 0x14
mov dword [edx + 0x10], eax
mov ecx, dword [edi]
add edi, 4
mov dword [esi + 0x2a0], ecx
mov edx, dword [edi]
add edi, 4
mov dword [esi + 0x2a4], edx
mov eax, dword [edi]
mov dword [esi + 0x2a8], eax
add edi, 4
mov al, byte [edi]
inc edi
test al, al
je case.default.0x4d6fbb
mov ecx, dword [edi]
add edi, 4
mov dword [esi + 0x2b0], ecx
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x2b4], eax
je 0x4d4170
neg eax
mov dword [esi + 0x2b4], eax
mov edx, dword [edi + 4]
mov dword [esi + 0x2b8], edx
add edi, 4
add edi, 4
lea eax, [esi + 0x2bc]
mov ecx, edi
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov ecx, dword [ecx + 0x10]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x14]
mov dword [esi + 0x2d0], edx
mov edx, dword [0x8927a4]
add edi, 0x14
mov eax, dword [edi + 4]
add edi, 4
mov dword [esi + 0x2d4], eax
mov ecx, dword [edi + 4]
mov dword [esi + 0x2d8], ecx
add edx, 0x1a2b9
mov eax, dword [edx]
add esi, 0x2dc
mov dword [esi], eax
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov edx, dword [edx + 8]
mov dword [esi + 8], edx
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 0x10]
movzx ecx, byte [esi]
mov eax, dword [0x8927a4]
imul ecx, ecx, 0xd
lea ecx, [ecx + eax + 0x203cd]
push eax
call fcn.00430700
cmp eax, 0xffffffff
jne case.default.0x4d6fbb
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
movzx ecx, byte [esi]
mov edx, dword [0x8927a4]
add esp, 0x14
push 0
push 0
add esi, 0xe
push esi
mov edi, eax
movzx eax, byte [esi - 1]
mov esi, ecx
imul esi, esi, 0xd
lea esi, [esi + edx + 0x203cd]
push esi
lea esi, [edx + ecx*8]
lea ecx, [ecx + esi + 0x228d0]
push ecx
push 0
push edx
call fcn.00423aa0
test edi, edi
je case.default.0x4d6fbb
mov eax, edi
call fcn.0050e510
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x2103
je 0x4d467c
sub eax, 2
jne case.default.0x4d6fbb
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d4306
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x1c]
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4d465b
mov cl, byte [eax + 2]
mov edx, dword [esp + 0x20]
mov edi, dword [edx + 0x124]
mov ebx, dword [0x8927a4]
movzx ecx, cl
add eax, 2
mov dword [esp + 0x10], ecx
shl edi, 7
lea edi, [edi + ebx + 0x23e24]
mov ebx, ecx
shr ecx, 2
inc eax
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x124]
mov esi, dword [0x8927a4]
mov ecx, ebx
shl edi, 7
add edi, ecx
add eax, ecx
mov byte [edi + esi + 0x23e24], 0
mov ecx, dword [edx + 0x124]
shl ecx, 7
lea edi, [ecx + esi + 0x23e24]
lea ecx, [edx + 0x12c]
mov edi, edi
mov bl, byte [edi]
inc edi
mov byte [ecx], bl
inc ecx
test bl, bl
jne 0x4d4380
mov cl, byte [eax]
mov edi, dword [edx + 0x124]
mov byte [edx + 0x1ac], cl
mov byte [edi + esi + 0x24324], cl
mov ecx, dword [eax + 1]
mov edi, dword [edx + 0x124]
mov dword [edx + 0x1b0], ecx
mov dword [esi + edi*4 + 0x24330], ecx
mov ecx, dword [edx + 0x124]
inc eax
mov bl, byte [eax + 4]
mov byte [ecx + esi + 0x24358], bl
mov edi, dword [edx + 0x124]
add eax, 4
mov cl, byte [eax + 1]
inc eax
mov byte [edx + 0x1b4], cl
mov byte [edi + esi + 0x2436c], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b5], cl
mov byte [edi + esi + 0x24376], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b6], cl
mov byte [edi + esi + 0x24380], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b7], cl
mov byte [edi + esi + 0x2438a], cl
mov cl, byte [edx + 0x1b4]
xor edi, edi
inc eax
test cl, cl
mov dword [esp + 0x14], edi
jbe 0x4d4533
lea ecx, [edx + 0x268]
mov dword [esp + 0x24], ecx
lea ebx, [esp + 0x2c]
mov ecx, edx
sub ecx, ebx
add ecx, 0x220
mov dword [esp + 0x10], ecx
mov ecx, edx
lea ebx, [esp + 0x38]
sub ecx, ebx
add ecx, 0x1b8
mov byte [esp + 0x44], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x28], ecx
mov ecx, eax
mov ebx, dword [ecx]
mov dword [esp + 0x38], ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x40], ecx
mov cl, byte [eax + 0xd]
add eax, 0xd
inc eax
mov byte [esi + edi + 0x244c8], cl
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x30]
mov cl, 0x80
shr ebx, 0x18
test cl, bl
je 0x4d44c0
mov ebx, dword [esp + 0x30]
shr ebx, 0x10
test cl, bl
jne 0x4d44c0
mov byte [esp + 0x33], 0
mov cx, word [eax + 8]
mov ebx, dword [esp + 0x28]
add eax, 8
mov word [esp + 0x18], cx
add eax, 8
lea edi, [esp + 0x38]
mov cl, byte [edi]
mov byte [edi + ebx], cl
inc edi
test cl, cl
jne 0x4d44d7
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0x2c]
lea esp, [esp]
mov cl, byte [edi]
mov byte [edi + ebx], cl
inc edi
test cl, cl
jne 0x4d44f0
mov ecx, dword [esp + 0x18]
lea edi, [ecx + 5]
mov ecx, dword [esp + 0x24]
mov word [ecx], di
mov edi, dword [esp + 0x14]
add ecx, 2
mov dword [esp + 0x24], ecx
add dword [esp + 0x28], 0xd
movzx ecx, byte [edx + 0x1b4]
inc edi
add ebx, 9
cmp edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
jl 0x4d4472
mov eax, 0x11a
mov dword [esp + 0x74], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], eax
mov eax, 0x50
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, 0x93
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, 0xd6
push 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov ecx, 0x11
mov eax, 0x119
push 0x5f2700
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov eax, 0x15c
push 0x5ef1b8
push 0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
call fcn.004cf280
mov ebx, 0x25
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
jne case.default.0x4d6fbb
push 0x90
call fcn.0055e5a9
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov dword [esp + 0x3f4], 3
je 0x4d462d
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x124]
mov edx, dword [esp + ecx*4 + 0x48]
push ecx
mov ecx, dword [esp + ecx*4 + 0x74]
push edx
push ecx
push eax
call fcn.0052d1d0
mov esi, eax
jmp 0x4d462f
xor esi, esi
mov dword [esp + 0x3f4], 0xffffffff
call fcn.004cf280
call fcn.00403410
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov dword [esi + 0x124], 0xffffffff
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d46c8
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x30]
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4d5275
mov cl, byte [eax + 2]
mov edx, dword [0x8927a4]
add eax, 2
add eax, 2
test cl, cl
mov byte [edx + 0x23dd0], cl
je 0x4d46fa
mov ecx, dword [esi + 0x11c]
mov dword [esi + 0x118], ecx
xor ecx, ecx
lea ebx, [edx + 0x23dd4]
mov edi, ebx
mov dword [edi], ecx
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], ecx
mov cl, byte [edx + 0x23dd0]
xor edi, edi
test cl, cl
mov dword [esp + 0x24], edi
jbe 0x4d4866
lea ecx, [edx + 0x23e42]
mov dword [esp + 0x28], ecx
mov ecx, 0xfffdc1be
sub ecx, edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov edi, edi
cmp edi, 0xa
jge 0x4d4866
movzx ecx, word [eax]
add eax, 2
mov dword [ebx + 0x28], ecx
movzx ecx, byte [eax]
inc eax
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x4d483d
cmp ecx, 0x32
jle 0x4d4780
mov ecx, 0x32
mov dword [esp + 0x10], ecx
cmp ecx, 0x1e
mov dword [ebx], 1
jg 0x4d4793
test ecx, ecx
jge 0x4d4798
xor ecx, ecx
jmp 0x4d4798
mov ecx, 0x1e
mov edi, dword [esp + 0x28]
add edi, 0xffffffe2
mov ebx, ecx
shr ecx, 2
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
xor bl, bl
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add eax, esi
lea edi, [esi + ecx]
mov ecx, dword [esp + 0x28]
add edi, ecx
mov byte [edi + edx + 0x23e24], bl
mov edi, dword [esp + 0x24]
mov byte [ecx], bl
mov byte [ecx + 1], bl
mov bl, byte [eax]
mov byte [edi + edx + 0x24324], bl
mov esi, dword [eax + 1]
mov ebx, dword [esp + 0x14]
mov dword [ebx + 0x55c], esi
mov esi, dword [esp + 0x20]
inc eax
mov bl, byte [eax + 4]
add eax, 4
inc eax
mov byte [edi + edx + 0x24358], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x24362], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x2436c], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x24376], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x24380], bl
mov bl, byte [eax]
mov byte [edi + edx + 0x2438a], bl
mov ebx, dword [esp + 0x14]
inc eax
mov byte [edi + edx + 0x24394], 0
jmp 0x4d4841
mov ecx, dword [esp + 0x28]
add ecx, 0x80
mov dword [esp + 0x28], ecx
movzx ecx, byte [edx + 0x23dd0]
inc edi
add ebx, 4
cmp edi, ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], ebx
jl 0x4d4750
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4d48c1
mov edx, dword [0x8927a4]
mov al, byte [edx + 0x23dd0]
xor ebx, ebx
test al, al
jbe 0x4d48bc
call fcn.0050e4e0
mov eax, dword [0x8927a4]
movzx ecx, byte [eax + 0x23dd0]
inc ebx
cmp ebx, ecx
jl 0x4d48a6
call fcn.0050e4e0
mov edx, dword [0x8927a4]
mov eax, dword [edx + 0x1aac4]
mov dword [esp + 0x18], eax
call fcn.004cee70
mov edi, eax
lea ebx, [edi + 0x30]
push ebx
mov dword [esp + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x2c]
test al, al
je 0x4d48f6
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4d4921
mov eax, dword [esp + 0x18]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
mov ecx, eax
shr ecx, 3
mov ebx, dword [edx + ecx*4]
mov edx, dword [edi + eax*4]
mov eax, dword [esp + 0x10]
push eax
xor ebx, edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp bl, 1
jne case.default.0x4d6fbb
mov ecx, dword [0x8927a4]
mov ax, word [ecx + 0x1aacc]
cmp ax, 0xffff
je case.default.0x4d6fbb
movsx eax, ax
cdq
mov edi, 0xa
idiv edi
mov dword [esi + 8], edx
mov eax, dword [ecx + edx*4 + 0x23dd4]
test eax, eax
je 0x4d49a3
mov al, byte [edx + ecx + 0x24380]
test al, al
jne 0x4d49a3
mov al, byte [edx + ecx + 0x2436c]
cmp al, byte [edx + ecx + 0x24376]
je 0x4d49a3
mov al, byte [edx + ecx + 0x2438a]
test al, al
je 0x4d4984
lea edi, [ecx + 0x1aac0]
xor al, al
call fcn.00417d80
push 0xffffffffffffffff
push esi
call fcn.004d82a0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea edi, [ecx + 0x1aac0]
xor al, al
call fcn.00417d80
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
xor ecx, ecx
cmp word [eax], cx
jne 0x4d51c1
push ecx
push 0x5f0a64
push 0x5ef1b8
push ecx
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
mov eax, 0x8977e8
mov byte [esi + 0x11], 0
call fcn.004587e0
mov edx, dword [0x8927a4]
call fcn.004239c0
lea eax, [edx + 0x26328]
call fcn.0041bac0
mov ebx, dword [ebp + 0x10]
lea eax, [edx + 0x247ce]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1aa38]
call fcn.00417b40
mov edi, dword [0x8927a4]
movzx eax, byte [ebx + 1]
inc ebx
add edi, 0x1aa2c
call fcn.00417b40
mov ecx, dword [0x8927a4]
inc ebx
add ecx, 0x1aa2c
mov dword [ebp + 0x10], ebx
call fcn.004086e0
mov ebx, eax
mov eax, 0x8977e8
call fcn.004587b0
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
mov eax, dword [0x8927a4]
mov dword [eax + 0x244d0], ecx
xor ecx, ecx
mov word [esi + 0x114], cx
mov dword [esi + 0x11c], ecx
mov byte [esi + 0x113], 2
mov cl, byte [edx + 2]
movzx ebx, cl
add edx, 2
inc edx
mov dword [ebp + 0x10], edx
mov esi, edx
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea edi, [eax + 0x244d4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x10]
mov byte [ebx + eax + 0x244d4], 0
mov cl, byte [esi + ebx]
add esi, ebx
mov byte [eax + 0x24568], cl
inc esi
lea edi, [eax + 0x2456c]
mov eax, dword [esi]
mov dword [esp + 0x14], ebx
call fcn.00417b40
mov edx, dword [esi + 4]
mov eax, dword [0x8927a4]
add esi, 4
mov dword [eax + 0x245a1], edx
mov ecx, dword [esi + 4]
add esi, 8
mov dword [eax + 0x245a5], ecx
mov dl, byte [esi]
mov byte [eax + 0x24578], dl
mov cl, byte [esi + 1]
inc esi
inc esi
test cl, cl
mov byte [eax + 0x24579], cl
mov dword [ebp + 0x10], esi
mov dword [esp + 0x24], 0
jbe 0x4d4f49
nop
mov al, byte [esi]
mov ebx, dword [0x8927a4]
mov ecx, dword [ebx + 0x26348]
add ebx, 0x26328
movzx edi, al
inc esi
inc ecx
push edi
mov dword [ebx + 0x20], ecx
call fcn.0041bb00
mov eax, dword [0x8927a4]
lea ecx, [edi + edi*4]
shl ecx, 2
mov dword [esp + 0x18], ecx
lea edx, [ecx + eax + 0x245f1]
mov ecx, esi
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x18]
mov byte [edx + eax + 0x245fd], 0
mov cl, byte [esi + 0xc]
add esi, 0xc
test cl, cl
sete cl
mov byte [edi + eax + 0x805c8], cl
inc esi
mov byte [esp + 0xc], cl
mov ecx, dword [esi]
mov dword [eax + edi*4 + 0x24694], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x246d4], dx
mov ecx, dword [esi + 2]
add esi, 2
mov dword [eax + edi*4 + 0x246b4], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x246e4], dx
mov cl, byte [esi + 2]
add esi, 2
mov byte [eax + edi*2 + 0x247b6], cl
mov dl, byte [esi + 1]
inc esi
mov byte [eax + edi*2 + 0x247b7], dl
mov cl, byte [esi + 1]
inc esi
mov byte [edi + eax + 0x247c6], cl
mov edx, dword [eax + 0x1aa30]
inc esi
mov dword [esp + 0x18], edx
call fcn.004cee70
mov ebx, eax
lea eax, [ebx + 0x30]
push eax
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [ebx + 0x2c]
test al, al
je 0x4d4c27
mov eax, dword [esp + 0x10]
mov ebx, 1
push eax
jmp 0x4d4c49
mov eax, dword [esp + 0x18]
mov edx, dword [ebx + 0x24]
mov ebx, dword [ebx + 0x1c]
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x18], ebx
mov ebx, dword [edx + ecx*4]
mov ecx, dword [esp + 0x18]
xor ebx, dword [ecx + eax*4]
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp edi, ebx
mov eax, dword [0x8927a4]
jne 0x4d4c65
mov cl, byte [edi + eax + 0x247c6]
mov byte [eax + 0x1aa34], cl
mov dl, byte [esi]
mov byte [edi + eax + 0x247ce], dl
mov edx, dword [esi + 1]
inc esi
lea ecx, [eax + edi*8 + 0x20508]
mov dword [edi + ecx + 0x40a1], edx
mov edx, dword [esi + 4]
mov dword [edi + ecx + 0x40a5], edx
lea ecx, [eax + edi*8]
mov bl, byte [ecx + edi + 0x245b0]
add ecx, edi
mov dl, 0x80
test dl, bl
je 0x4d4cab
test byte [ecx + 0x245af], dl
jne 0x4d4cab
mov byte [ecx + 0x245b0], 0
add esi, 8
mov byte [ecx + 0x245b1], 0
mov dx, word [esi]
add dx, 5
add esi, 2
mov word [eax + edi*2 + 0x247d6], dx
mov cx, word [esi]
add cx, 5
add esi, 2
mov word [eax + edi*2 + 0x247e6], cx
mov dx, word [esi]
add dx, 5
add esi, 2
mov word [eax + edi*2 + 0x24806], dx
mov cx, word [esi]
add esi, 2
mov word [eax + edi*2 + 0x247f6], cx
movzx edx, word [esi]
add esi, 2
mov dword [esp + 0x18], edx
mov dword [ebp + 0x10], esi
xor edx, edx
lea ecx, [edi*4]
nop
cmp edx, 3
jne 0x4d4d21
mov word [eax + ecx*2 + 0x246fa], 0x8000
jmp 0x4d4d3a
mov bl, byte [esp + 0xc]
neg bl
lea ecx, [edx + ecx + 0x1237a]
sbb ebx, ebx
and ebx, 0x8000
mov word [eax + ecx*2], bx
lea ecx, [edi*4]
lea ebx, [ecx + edx + 0x91cd]
inc edx
cmp edx, 4
mov dword [eax + ebx*4], 0
jl 0x4d4d10
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x4d4e7a
mov dword [esp + 0x10], ecx
jmp 0x4d4d70
mov ebx, dword [esi]
cmp ebx, 0x31999
jle 0x4d4e17
cmp ebx, 0x34000
jge 0x4d4e17
lea ecx, [esp + 0x98]
call fcn.0040af10
push ebx
lea edx, [esp + 0x9c]
mov dword [esp + 0x3f8], 4
mov eax, dword [0x8927a4]
push edx
push eax
mov al, 1
call fcn.0042ec50
movzx eax, byte [esp + 0xa1]
dec eax
je 0x4d4de0
dec eax
jne 0x4d4df9
mov eax, dword [0x8927a4]
mov ecx, edi
shl ecx, 4
mov dword [ecx + eax + 0x2473c], ebx
mov byte [edi + eax + 0x262c0], 1
jmp 0x4d4df9
mov eax, dword [0x8927a4]
mov edx, edi
shl edx, 4
mov dword [edx + eax + 0x24738], ebx
mov byte [edi + eax + 0x262b8], 1
lea ecx, [esp + 0x98]
mov dword [esp + 0x3f4], 0xffffffff
call fcn.00413130
mov eax, dword [0x8927a4]
jmp 0x4d4e65
mov ecx, ebx
sar ecx, 0x10
and cl, 0xf
and ebx, 0x7fff
cmp cl, 3
jne 0x4d4e41
or ebx, 0x8000
lea ecx, [edi*4]
mov word [eax + ecx*2 + 0x246fa], bx
jmp 0x4d4e65
mov dl, byte [esp + 0xc]
neg dl
sbb edx, edx
and edx, 0x8000
or edx, ebx
movzx ebx, cl
lea ecx, [edi*4]
add ebx, ecx
mov word [eax + ebx*2 + 0x246f4], dx
mov ecx, dword [esp + 0x10]
add esi, 4
dec ecx
mov dword [esp + 0x10], ecx
jne 0x4d4d70
mov dword [ebp + 0x10], esi
mov cl, byte [esi]
lea esi, [eax + edi*8 + 0x26278]
test byte [0x922440], 1
mov byte [esp + 0xc], cl
jne 0x4d4ec4
or dword [0x922440], 1
push 0x9223f8
mov dword [esp + 0x3f8], 5
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
mov dword [esp + 0x3f4], 0xffffffff
mov ecx, dword [esi + 4]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov esi, 0x9223f8
call fcn.0040adb0
call fcn.005605d0
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x8927a4]
inc dword [ebp + 0x10]
mov eax, dword [ecx + edi*4 + 0x246b4]
mov esi, edi
mov dword [ecx + edi*4 + 0x262c8], edx
xor edx, edx
mov dx, word [ecx + edi*2 + 0x246e4]
push edx
push eax
mov ax, word [ecx + edi*2 + 0x246d4]
mov ecx, dword [ecx + edi*4 + 0x24694]
mov edx, 0x8977e8
call fcn.004588a0
mov ecx, dword [0x8927a4]
mov eax, dword [esp + 0x24]
movzx edx, byte [ecx + 0x24579]
mov esi, dword [ebp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x4d4b30
mov ebx, dword [esp + 0x14]
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x1aa30]
mov dword [esp + 0x18], ecx
call fcn.004cee70
mov edi, eax
lea eax, [edi + 0x30]
push eax
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x2c]
test al, al
je 0x4d4f83
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], 1
push edx
jmp 0x4d4fa1
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
mov eax, ecx
shr eax, 3
mov eax, dword [edx + eax*4]
xor eax, dword [edi + ecx*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x38]
push 1
push 0x20ab
mov byte [0x898701], al
mov dword [0x89801c], eax
call dword [sym.imp.WS2_32.dll_htons]
mov edi, 0x8977e8
push eax
mov eax, dword [esp + 0x40]
push 0x100007f
call fcn.00459620
mov eax, dword [0x8927a4]
mov cx, word [eax + 0x244d0]
mov dx, word [eax + 0x1e964]
mov word [0x5ef7a8], dx
mov word [0x5ef7b0], cx
mov word [0x5ef7b8], dx
mov word [0x5ef7c0], cx
push 9
mov byte [eax + 0x24594], 0
call fcn.00414140
mov eax, dword [0x892d48]
mov ecx, dword [0x8927a4]
add esp, 4
test eax, eax
mov dword [ecx + 0x202c8], 0xffffffff
je 0x4d503c
mov ebx, eax
call fcn.00408310
mov ebx, dword [esp + 0x14]
jmp 0x4d5046
push 0x8993b8
call fcn.00406390
mov edx, dword [0x8927a4]
mov eax, dword [edx + 0x1aac4]
mov dword [esp + 0x18], eax
call fcn.004cee70
mov edi, eax
lea eax, [edi + 0x30]
push eax
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x2c]
test al, al
je 0x4d507f
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4d50ad
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
mov edx, ecx
shr edx, 3
mov eax, dword [eax + edx*4]
mov edx, dword [edi + ecx*4]
mov ecx, dword [esp + 0x10]
xor eax, edx
push ecx
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x18]
test al, al
je 0x4d50d4
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x1aac4]
push 1
lea edx, [esp + 0x10]
push edx
push ecx
mov byte [esp + 0x18], 0
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov esi, dword [ebp + 0x10]
mov edx, dword [0x8927a4]
movzx eax, byte [edx + 0x24579]
mov edx, dword [ebp + 8]
imul eax, eax, 0x31
mov ecx, 0xffffffea
sub ecx, eax
sub ecx, ebx
add edx, ecx
xor eax, eax
mov byte [esp + 0x98], 0
mov ecx, 0x3f
lea edi, [esp + 0x99]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
xor ebx, ebx
test edx, edx
mov dword [ebp + 8], edx
jle 0x4d5179
mov cl, byte [ebx + esi]
cmp cl, 0xa
jne 0x4d5169
lea eax, [esp + 0x98]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d5130
mov ecx, dword [0x8927a4]
push 1
push 0
sub eax, edx
lea edx, [esp + 0xa0]
push edx
push 0
push 0
push 2
push ecx
call fcn.00423aa0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
jmp 0x4d5171
mov byte [esp + eax + 0x98], cl
inc eax
mov ecx, dword [ebp + 8]
inc ebx
cmp ebx, ecx
jl 0x4d5118
lea eax, [esp + 0x98]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d5183
mov ecx, dword [0x8927a4]
push 1
push 0
sub eax, edx
lea edx, [esp + 0xa0]
push edx
push 0
push 0
push 2
push ecx
call fcn.00423aa0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov byte [esi + 0x11], cl
cmp word [eax], 0x1d
jne 0x4d5275
mov edx, dword [esi + 8]
mov eax, dword [0x8927a4]
push ecx
push 0x5f0a64
push 0x5ef1b8
mov dword [eax + edx*4 + 0x23dd4], ecx
push ecx
mov dword [esi + 8], 0xffffffff
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d522a
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x30]
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
push 0x31c
call fcn.0055e5a9
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov dword [esp + 0x3f4], 6
je 0x4d525b
push 1
push 0
push 0xc3507
push eax
call fcn.00507f10
jmp 0x4d525d
xor eax, eax
push eax
mov dword [esp + 0x3f8], 0xffffffff
call fcn.004cf280
mov ecx, eax
call fcn.00406b40
mov ecx, dword [0x8927a4]
add ecx, 0x1aac0
call fcn.00406a60
test al, al
je case.default.0x4d6fbb
mov edi, dword [0x8927a4]
add edi, 0x1aac0
xor al, al
call fcn.00417d80
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x2121
cmp eax, 0x12
ja case.default.0x4d6fbb
movzx ecx, byte [eax + 0x4d7264]
jmp dword [ecx*4 + 0x4d7250]
mov edx, dword [ebp + 0x10]
cmp byte [edx], 0
je case.default.0x4d6fbb
push 0
push 0xc3500
push 0x897640
call fcn.0044dea0
mov esi, eax
call fcn.00414740
jmp 0x4d7234
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
mov dword [esp + 0x18], eax
je case.default.0x4d6fbb
push 0
push 0x5f09ec
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0xc8
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d5363
push eax
call fcn.00502ab0
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4d5c83
mov ecx, dword [0x8927a4]
mov byte [ecx + 0x24408], 1
call fcn.004d83f0
mov eax, dword [0x8927a4]
add eax, 0x26328
call fcn.0041bac0
mov eax, 0x8977e8
call fcn.004587e0
mov ecx, dword [0x8927a4]
mov ebx, dword [ebp + 0x10]
mov byte [ecx + 0x1aa34], 0
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [ecx + 0x1aa38]
call fcn.00417b40
mov edi, dword [0x8927a4]
movzx eax, byte [ebx]
add edi, 0x1aa2c
call fcn.00417b40
mov ecx, dword [0x8927a4]
inc ebx
add ecx, 0x1aa2c
mov dword [ebp + 0x10], ebx
call fcn.004086e0
mov ebx, eax
mov eax, 0x8977e8
call fcn.004587b0
mov eax, dword [0x8927a4]
lea ecx, [eax + 0x1aa2c]
lea ebx, [eax + 0x805c0]
call fcn.004086e0
mov edx, dword [0x8927a4]
lea edi, [edx + eax*8 + 0x26278]
mov ecx, ebx
call fcn.0049df80
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
mov edi, dword [0x8927a4]
mov edx, dword [edi + 0x26348]
lea ebx, [edi + 0x26328]
inc edx
push eax
mov dword [ebx + 0x20], edx
call fcn.0041bb00
mov eax, dword [ebp + 0x10]
movzx ecx, word [eax]
mov dword [edi + 0x244d0], ecx
mov byte [esi + 0x113], 2
xor ebx, ebx
mov word [esi + 0x114], bx
mov dword [esi + 0x11c], ebx
xor edx, edx
lea ecx, [edi + 0x247ce]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dl, byte [eax + 2]
add eax, 2
mov byte [edi + 0x24578], dl
mov cl, byte [eax + 1]
inc eax
movzx edx, cl
inc eax
mov esi, eax
mov dword [ebp + 0x10], eax
mov ecx, edx
mov eax, ecx
shr ecx, 2
add edi, 0x244d4
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x8927a4]
add eax, edx
mov byte [esi + 0x24554], bl
mov cl, byte [eax]
mov byte [esi + 0x24568], cl
mov eax, dword [eax + 1]
lea edi, [esi + 0x2456c]
call fcn.00417b40
mov eax, dword [0x8927a4]
lea ecx, [eax + 0x245a1]
mov byte [eax + 0x24579], 1
or edx, 0xffffffff
mov dword [ecx], edx
mov dword [ecx + 4], edx
lea ecx, [eax + 0x1aa2c]
lea esi, [eax + 0x1a2b9]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea edi, [eax + edx*4 + 0x245f1]
mov cl, byte [esi]
inc esi
mov byte [edi], cl
inc edi
cmp cl, bl
jne 0x4d5508
lea ecx, [eax + 0x1aa2c]
lea esi, [eax + 0x247b4]
call fcn.004086e0
mov cl, byte [esi]
mov esi, dword [0x8927a4]
mov byte [esi + eax*2 + 0x247b6], cl
lea ecx, [esi + 0x1aa2c]
lea edi, [esi + 0x247b5]
call fcn.004086e0
mov esi, dword [0x8927a4]
mov dl, byte [edi]
lea ecx, [esi + 0x1aa2c]
mov byte [esi + eax*2 + 0x247b7], dl
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov byte [eax + ecx + 0x247c6], bl
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov byte [eax + ecx + 0x247ce], 1
lea edi, [ecx + 0x1a2a0]
add ecx, 0x1aa2c
call fcn.004086e0
mov esi, dword [0x8927a4]
add eax, 0x40a1
lea ecx, [esi + eax*8]
add ecx, eax
mov al, byte [edi]
inc edi
mov byte [ecx], al
inc ecx
cmp al, bl
jne 0x4d55a4
lea ecx, [esi + 0x1a2f8]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24898], esi
lea esi, [ecx + 0x1a2ce]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x247d6], dx
lea esi, [ecx + 0x1a2d0]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x247e6], dx
add ecx, 0x1a2e0
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24838], esi
add ecx, 0x1a2e8
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24858], esi
add ecx, 0x1a2f0
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24878], esi
lea esi, [ecx + 0x1a2d2]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x24806], dx
lea esi, [ecx + 0x1a2dc]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x247f6], dx
add ecx, 0x1a2d4
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24818], esi
add ecx, 0x1a9e4
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246f4], si
add ecx, 0x1a9ec
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246f6], si
add ecx, 0x1a9f4
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246f8], si
add ecx, 0x1a9fc
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246fa], si
add ecx, 0x1aa04
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
shl ecx, 4
mov dword [ecx + eax + 0x24734], esi
lea ecx, [eax + 0x1aa0c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov edx, eax
mov eax, dword [0x8927a4]
shl edx, 4
lea ecx, [eax + 0x1aa14]
mov dword [edx + eax + 0x24738], esi
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
shl ecx, 4
mov dword [ecx + eax + 0x2473c], esi
lea ecx, [eax + 0x1aa1c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov edx, eax
mov eax, dword [0x8927a4]
add edx, 0x2474
shl edx, 4
lea ecx, [eax + 0x1aa2c]
mov dword [edx + eax], esi
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x25538], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x25558], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x26238], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x26258], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x261f8], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x26218], ebx
xor esi, esi
mov edi, 0x1a440
lea ecx, [edi + ecx - 0xa0]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov ebx, eax
call fcn.004086e0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x8927a4]
mov dword [eax + ecx*4 + 0x248b8], ebx
lea ecx, [edi + eax]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov ebx, eax
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov dword [eax + ecx*4 + 0x24b38], ebx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
lea ebx, [eax + ecx*4 + 0x24b38]
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x248b8]
add ecx, dword [ebx]
mov dword [esp + 0x18], ecx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0x252b8], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea ebx, [ecx + eax*4 + 0x25538]
add ecx, 0x1aa2c
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov edx, dword [eax + ecx*4 + 0x248b8]
add dword [ebx], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea ebx, [ecx + eax*4 + 0x25558]
add ecx, 0x1aa2c
call fcn.004086e0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x8927a4]
mov edx, dword [eax + ecx*4 + 0x24b38]
add dword [ebx], edx
lea ecx, [edi + eax + 0x280]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov ebx, eax
call fcn.004086e0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x8927a4]
mov dword [eax + ecx*4 + 0x25578], ebx
lea ecx, [edi + eax + 0x320]
call fcn.004086e0
mov ebx, eax
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov dword [eax + ecx*4 + 0x257f8], ebx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
lea ebx, [eax + ecx*4 + 0x257f8]
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x25578]
add ecx, dword [ebx]
mov dword [esp + 0x18], ecx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0x25f78], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea ebx, [ecx + eax*4 + 0x261f8]
add ecx, 0x1aa2c
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [esi + edx*4]
mov edx, dword [eax + ecx*4 + 0x25578]
add dword [ebx], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea ebx, [ecx + eax*4 + 0x26218]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*4]
mov eax, dword [ecx + edx*4 + 0x257f8]
mov edx, dword [ebx]
add edx, eax
add edi, 8
inc esi
cmp edi, 0x1a4e0
mov dword [ebx], edx
jl 0x4d5912
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x26238]
add ecx, 0x1a94c
call fcn.004086e0
add dword [esi], eax
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x26258]
add ecx, 0x1a944
call fcn.004086e0
mov ebx, dword [esi]
push 0x257
push 0x31f
push 0
add ebx, eax
push 0
mov ecx, 0x921480
mov dword [esi], ebx
mov byte [0x892d61], 0
call fcn.00542090
mov eax, dword [0x8927a4]
mov cx, word [eax + 0x244d0]
mov dx, word [eax + 0x1e964]
mov ebx, dword [0x892d48]
test ebx, ebx
mov word [0x5ef7a8], dx
mov word [0x5ef7b0], cx
mov word [0x5ef7b8], dx
mov word [0x5ef7c0], cx
mov byte [eax + 0x24594], 0
mov dword [eax + 0x202c8], 0xffffffff
je 0x4d5c49
call fcn.00408310
jmp 0x4d5c53
push 0x8993b8
call fcn.00406390
mov ecx, dword [0x8927a4]
mov al, byte [ecx + 0x80a14]
test al, al
jne case.default.0x4d6fbb
call fcn.004d8550
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [esp + 0x18]
push edx
call fcn.0050e020
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
mov ax, word [eax]
test ax, ax
jne 0x4d6343
mov eax, 0x8977e8
call fcn.004587e0
mov edx, dword [0x8927a4]
call fcn.004239c0
lea eax, [edx + 0x26328]
call fcn.0041bac0
mov ebx, dword [ebp + 0x10]
lea eax, [edx + 0x247ce]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1aa38]
call fcn.00417b40
mov edi, dword [0x8927a4]
movzx eax, byte [ebx + 1]
inc ebx
add edi, 0x1aa2c
call fcn.00417b40
mov ecx, dword [0x8927a4]
inc ebx
add ecx, 0x1aa2c
mov dword [ebp + 0x10], ebx
call fcn.004086e0
mov ebx, eax
mov eax, 0x8977e8
call fcn.004587b0
mov eax, dword [0x8927a4]
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
mov dword [eax + 0x244d0], ecx
xor ecx, ecx
mov word [esi + 0x114], cx
mov dword [esi + 0x11c], ecx
mov byte [esi + 0x113], 2
mov cl, byte [edx + 2]
movzx ebx, cl
add edx, 2
inc edx
mov dword [ebp + 0x10], edx
mov esi, edx
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea edi, [eax + 0x244d4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x10]
mov byte [eax + 0x24554], 0
mov byte [ebx + eax + 0x244d4], 0
mov cl, byte [esi + ebx]
add esi, ebx
mov byte [eax + 0x24568], cl
lea edi, [eax + 0x2456c]
xor eax, eax
mov dword [esp + 0x14], ebx
inc esi
call fcn.00417b40
mov edi, dword [0x8927a4]
mov eax, dword [esi]
add edi, 0x2456c
call fcn.00417b40
mov edx, dword [esi + 4]
mov eax, dword [0x8927a4]
add esi, 4
mov dword [eax + 0x245a1], edx
mov ecx, dword [esi + 4]
add esi, 8
mov dword [eax + 0x245a5], ecx
mov dl, byte [esi]
inc esi
mov byte [eax + 0x24578], dl
mov cl, byte [esi]
inc esi
test cl, cl
mov byte [eax + 0x24579], cl
mov dword [esp + 0x24], 0
jbe 0x4d6199
lea esp, [esp]
mov al, byte [esi]
mov ebx, dword [0x8927a4]
mov ecx, dword [ebx + 0x26348]
add ebx, 0x26328
movzx edi, al
inc esi
inc ecx
push edi
mov dword [ebx + 0x20], ecx
call fcn.0041bb00
mov eax, dword [0x8927a4]
lea ecx, [edi + edi*4]
shl ecx, 2
lea edx, [ecx + eax + 0x245f1]
mov dword [esp + 0x18], ecx
mov ecx, esi
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x18]
add esi, 0xc
mov byte [edx + eax + 0x245fd], 0
cmp byte [esi], 0
mov ecx, dword [esi + 1]
sete byte [esp + 0xc]
inc esi
mov dword [eax + edi*4 + 0x24694], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x246d4], dx
mov ecx, dword [esi + 2]
add esi, 2
mov dword [eax + edi*4 + 0x246b4], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x246e4], dx
mov cl, byte [esi + 2]
add esi, 2
mov byte [eax + edi*2 + 0x247b6], cl
mov dl, byte [esi + 1]
inc esi
mov byte [eax + edi*2 + 0x247b7], dl
mov cl, byte [esi + 1]
inc esi
mov byte [edi + eax + 0x247c6], cl
lea ecx, [eax + 0x1aa2c]
inc esi
call fcn.004086e0
cmp edi, eax
mov eax, dword [0x8927a4]
jne 0x4d5edc
mov dl, byte [edi + eax + 0x247c6]
mov byte [eax + 0x1aa34], dl
mov cl, byte [esi]
mov byte [edi + eax + 0x247ce], cl
mov ecx, dword [esi + 1]
inc esi
lea edx, [eax + edi*8 + 0x20508]
mov dword [edi + edx + 0x40a1], ecx
mov ecx, dword [esi + 4]
mov dword [edi + edx + 0x40a5], ecx
lea edx, [eax + edi*8]
mov bl, byte [edi + edx + 0x245b0]
lea ecx, [edi + edx]
mov dl, 0x80
test dl, bl
je 0x4d5f23
test byte [ecx + 0x245af], dl
jne 0x4d5f23
mov byte [ecx + 0x245b0], 0
mov byte [ecx + 0x245b1], 0
mov cx, word [esi + 8]
add esi, 8
add cx, 5
add esi, 2
mov word [eax + edi*2 + 0x247d6], cx
mov dx, word [esi]
add esi, 2
add dx, 5
mov word [eax + edi*2 + 0x247e6], dx
mov cx, word [esi]
add cx, 5
add esi, 2
mov word [eax + edi*2 + 0x24806], cx
mov dx, word [esi]
add esi, 2
mov word [eax + edi*2 + 0x247f6], dx
movzx ecx, word [esi]
add esi, 2
mov dword [esp + 0x18], ecx
mov dword [ebp + 0x10], esi
xor edx, edx
lea ecx, [edi*4]
cmp edx, 3
jne 0x4d5f99
mov word [eax + ecx*2 + 0x246fa], 0x8000
jmp 0x4d5fb2
mov bl, byte [esp + 0xc]
neg bl
lea ecx, [ecx + edx + 0x1237a]
sbb ebx, ebx
and ebx, 0x8000
mov word [eax + ecx*2], bx
lea ecx, [edi*4]
lea ebx, [ecx + edx + 0x91cd]
inc edx
cmp edx, 4
mov dword [eax + ebx*4], 0
jl 0x4d5f88
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x4d610c
mov dword [esp + 0x10], ecx
lea ecx, [ecx]
mov ebx, dword [esi]
cmp ebx, 0x31999
jle 0x4d60a9
cmp ebx, 0x34000
jge 0x4d60a9
lea ecx, [esp + 0x98]
call fcn.0040af10
push ebx
lea edx, [esp + 0x9c]
mov dword [esp + 0x3f8], 0
mov eax, dword [0x8927a4]
push edx
push eax
mov al, 1
call fcn.0042ec50
movzx eax, byte [esp + 0xa1]
dec eax
je 0x4d6060
dec eax
jne 0x4d608b
mov eax, dword [0x8927a4]
mov ecx, edi
shl ecx, 4
mov dword [ecx + eax + 0x2473c], ebx
cmp dword [0x892d1c], 3
mov byte [edi + eax + 0x262c0], 1
je 0x4d608b
push edi
push eax
call fcn.00431bc0
jmp 0x4d608b
mov eax, dword [0x8927a4]
mov ecx, dword [0x892d1c]
mov edx, edi
shl edx, 4
cmp ecx, 3
mov dword [edx + eax + 0x24738], ebx
mov byte [edi + eax + 0x262b8], 1
je 0x4d608b
push edi
push eax
call fcn.00431aa0
lea ecx, [esp + 0x98]
mov dword [esp + 0x3f4], 0xffffffff
call fcn.00413130
mov eax, dword [0x8927a4]
jmp 0x4d60f7
mov ecx, ebx
sar ecx, 0x10
and cl, 0xf
and ebx, 0x7fff
cmp cl, 3
jne 0x4d60d3
or ebx, 0x8000
lea ecx, [edi*4]
mov word [eax + ecx*2 + 0x246fa], bx
jmp 0x4d60f7
mov dl, byte [esp + 0xc]
neg dl
sbb edx, edx
and edx, 0x8000
or edx, ebx
movzx ebx, cl
lea ecx, [edi*4]
add ebx, ecx
mov word [eax + ebx*2 + 0x246f4], dx
mov ecx, dword [esp + 0x10]
add esi, 4
dec ecx
mov dword [esp + 0x10], ecx
jne 0x4d5fe0
mov dword [ebp + 0x10], esi
mov eax, dword [eax + edi*8 + 0x2627c]
mov cl, byte [esi]
push 1
lea edx, [esp + 0x10]
push edx
push eax
mov byte [esp + 0x18], cl
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
call fcn.005605d0
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x8927a4]
inc dword [ebp + 0x10]
mov eax, dword [ecx + edi*4 + 0x246b4]
mov esi, edi
mov dword [ecx + edi*4 + 0x262c8], edx
xor edx, edx
mov dx, word [ecx + edi*2 + 0x246e4]
push edx
push eax
mov ax, word [ecx + edi*2 + 0x246d4]
mov ecx, dword [ecx + edi*4 + 0x24694]
mov edx, 0x8977e8
call fcn.004588a0
mov ecx, dword [0x8927a4]
mov eax, dword [esp + 0x24]
movzx edx, byte [ecx + 0x24579]
mov esi, dword [ebp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x4d5e00
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
mov ebx, eax
mov eax, 0x8977e8
call fcn.004587b0
mov eax, dword [0x8927a4]
mov cx, word [eax + 0x244d0]
mov dx, word [eax + 0x1e964]
mov ebx, dword [0x892d48]
test ebx, ebx
mov word [0x5ef7a8], dx
mov word [0x5ef7b0], cx
mov word [0x5ef7b8], dx
mov word [0x5ef7c0], cx
mov byte [eax + 0x24594], 0
mov dword [eax + 0x202c8], 0xffffffff
je 0x4d6207
call fcn.00408310
jmp 0x4d6211
push 0x8993b8
call fcn.00406390
mov ecx, dword [0x8927a4]
add ecx, 0x1aac0
call fcn.00406a60
test al, al
je 0x4d6239
mov edi, dword [0x8927a4]
add edi, 0x1aac0
xor al, al
call fcn.00417d80
mov ebx, dword [0x8927a4]
movzx eax, byte [ebx + 0x24579]
mov edi, dword [esp + 0x14]
imul eax, eax, 0x31
mov edx, dword [ebp + 8]
mov ecx, 0xffffffea
sub ecx, eax
sub ecx, edi
add edx, ecx
xor eax, eax
mov byte [esp + 0x98], 0
mov ecx, 0x3f
lea edi, [esp + 0x99]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp + 8], edx
mov ecx, dword [ebp + 8]
stosb byte es:[edi], al
xor edx, edx
xor eax, eax
test ecx, ecx
mov dword [esp + 0x10], edx
jle 0x4d62eb
mov cl, byte [edx + esi]
cmp cl, 0xa
jne 0x4d62d7
lea eax, [esp + 0x98]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d62a0
push 1
push 0
sub eax, edx
lea edx, [esp + 0xa0]
push edx
push 0
push 0
push 2
push ebx
call fcn.00423aa0
mov edx, dword [esp + 0x10]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
jmp 0x4d62df
mov byte [esp + eax + 0x98], cl
inc eax
mov ecx, dword [ebp + 8]
inc edx
cmp edx, ecx
mov dword [esp + 0x10], edx
jl 0x4d6288
lea eax, [esp + 0x98]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d62f5
push 1
push 0
lea ecx, [esp + 0xa0]
push ecx
push 0
push 0
push 2
sub eax, edx
push ebx
call fcn.00423aa0
mov al, byte [ebx + 0x80a14]
test al, al
mov byte [ebx + 0x24408], 1
jne 0x4d6332
call fcn.004d8550
mov ebx, dword [0x8927a4]
mov dl, byte [ebx + 0x24579]
cmp dl, byte [ebx + 0x24578]
jmp 0x4d722b
cmp ax, 0x1d
mov eax, dword [0x8927a4]
jne 0x4d6363
mov ecx, dword [esi + 8]
mov dword [eax + ecx*4 + 0x23dd4], 0
mov dword [esi + 8], 0xffffffff
lea ecx, [eax + 0x1aac0]
jmp 0x4d5281
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
je case.default.0x4d6fbb
push 0
push 0x5f26e0
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x22
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je case.default.0x4d6fbb
mov edx, dword [ebp + 0x10]
cmp word [edx], 0
jne 0x4d6e16
call fcn.004d83f0
mov eax, dword [0x8927a4]
add eax, 0x26328
call fcn.0041bac0
mov eax, 0x8977e8
call fcn.004587e0
mov edx, dword [0x8927a4]
call fcn.004239c0
mov ebx, dword [ebp + 0x10]
mov byte [edx + 0x1aa34], 0
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1aa38]
call fcn.00417b40
mov edi, dword [0x8927a4]
movzx eax, byte [ebx]
add edi, 0x1aa2c
call fcn.00417b40
mov ecx, dword [0x8927a4]
inc ebx
add ecx, 0x1aa2c
mov dword [ebp + 0x10], ebx
call fcn.004086e0
mov ebx, eax
mov eax, 0x8977e8
call fcn.004587b0
mov eax, dword [0x8927a4]
lea ecx, [eax + 0x1aa2c]
lea ebx, [eax + 0x805c0]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea edi, [ecx + eax*8 + 0x26278]
mov ecx, ebx
call fcn.0049df80
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
mov edi, dword [0x8927a4]
mov edx, dword [edi + 0x26348]
lea ebx, [edi + 0x26328]
inc edx
push eax
mov dword [ebx + 0x20], edx
call fcn.0041bb00
mov eax, dword [ebp + 0x10]
movzx edx, word [eax]
add eax, 2
mov dword [edi + 0x244d0], edx
mov dword [ebp + 0x10], eax
xor ebx, ebx
xor eax, eax
lea ecx, [edi + 0x247ce]
mov byte [esi + 0x113], 2
mov word [esi + 0x114], bx
mov dword [esi + 0x11c], ebx
mov dword [ecx], eax
mov dword [ecx + 4], eax
lea eax, [esi + 0x13]
mov edx, edi
sub edx, eax
lea ecx, [edx + 0x244d4]
mov dl, byte [eax]
mov byte [eax + ecx], dl
inc eax
test dl, dl
jne 0x4d64f2
lea edx, [esi + 0x93]
mov ecx, edi
sub ecx, edx
mov eax, edx
lea esi, [ecx + 0x24554]
mov edi, edi
mov cl, byte [eax]
mov byte [eax + esi], cl
inc eax
test cl, cl
jne 0x4d6510
mov eax, edx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d6520
sub eax, edx
mov dword [esp + 0x18], eax
je 0x4d654b
mov esi, dword [0x8926bc]
cmp esi, ebx
je 0x4d654b
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edi, dword [0x8927a4]
mov dword [esi + 0x2e8], eax
mov esi, dword [esp + 0x10]
mov byte [edi + 0x24568], 0
mov eax, dword [esi + 0x8c]
add edi, 0x2456c
call fcn.00417b40
mov dl, byte [esi + 0x90]
mov eax, dword [0x8927a4]
mov byte [eax + 0x24578], dl
or ecx, 0xffffffff
lea edx, [eax + 0x245a1]
mov byte [eax + 0x24579], 1
mov dword [edx], ecx
mov dword [edx + 4], ecx
lea ecx, [eax + 0x1aa2c]
lea esi, [eax + 0x1a2b9]
call fcn.004086e0
lea ecx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea edi, [eax + ecx*4 + 0x245f1]
lea ecx, [ecx]
mov cl, byte [esi]
inc esi
mov byte [edi], cl
inc edi
test cl, cl
jne 0x4d65b0
lea ecx, [eax + 0x1aa2c]
lea esi, [eax + 0x247b4]
call fcn.004086e0
mov dl, byte [esi]
mov esi, dword [0x8927a4]
lea ecx, [esi + 0x1aa2c]
mov byte [esi + eax*2 + 0x247b6], dl
lea edi, [esi + 0x247b5]
call fcn.004086e0
mov cl, byte [edi]
mov esi, dword [0x8927a4]
mov byte [esi + eax*2 + 0x247b7], cl
lea ecx, [esi + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov byte [eax + ecx + 0x247c6], 0
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov byte [eax + ecx + 0x247ce], 1
lea edi, [ecx + 0x1a2a0]
add ecx, 0x1aa2c
call fcn.004086e0
mov esi, dword [0x8927a4]
add eax, 0x40a1
lea ecx, [esi + eax*8]
add ecx, eax
lea ecx, [ecx]
mov al, byte [edi]
inc edi
mov byte [ecx], al
inc ecx
test al, al
jne 0x4d6650
lea ecx, [esi + 0x1a2f8]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24898], esi
lea esi, [ecx + 0x1a2ce]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x247d6], dx
lea esi, [ecx + 0x1a2d0]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x247e6], dx
add ecx, 0x1a2e0
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24838], esi
add ecx, 0x1a2e8
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24858], esi
add ecx, 0x1a2f0
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24878], esi
lea esi, [ecx + 0x1a2d2]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x24806], dx
lea esi, [ecx + 0x1a2dc]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x247f6], dx
add ecx, 0x1a2d4
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x24818], esi
add ecx, 0x1a9e4
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246f4], si
add ecx, 0x1a9ec
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246f6], si
add ecx, 0x1a9f4
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246f8], si
add ecx, 0x1a9fc
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov word [ecx + eax*8 + 0x246fa], si
add ecx, 0x1aa04
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
shl ecx, 4
mov dword [ecx + eax + 0x24734], esi
lea ecx, [eax + 0x1aa0c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov edx, eax
mov eax, dword [0x8927a4]
shl edx, 4
lea ecx, [eax + 0x1aa14]
mov dword [edx + eax + 0x24738], esi
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
shl ecx, 4
mov dword [ecx + eax + 0x2473c], esi
lea ecx, [eax + 0x1aa1c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
mov edx, eax
mov eax, dword [0x8927a4]
add edx, 0x2474
shl edx, 4
lea ecx, [eax + 0x1aa2c]
mov dword [edx + eax], esi
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x25538], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x25558], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x26238], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x26258], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x261f8], ebx
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov dword [ecx + eax*4 + 0x26218], ebx
xor edi, edi
mov ebx, 0x1a440
mov edi, edi
lea ecx, [ebx + ecx - 0xa0]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x8927a4]
mov dword [eax + ecx*4 + 0x248b8], esi
lea ecx, [ebx + eax]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov dword [eax + ecx*4 + 0x24b38], esi
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
lea esi, [eax + ecx*4 + 0x24b38]
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x248b8]
add ecx, dword [esi]
mov dword [esp + 0x18], ecx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0x252b8], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x25538]
add ecx, 0x1aa2c
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov edx, dword [eax + ecx*4 + 0x248b8]
add dword [esi], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x25558]
add ecx, 0x1aa2c
call fcn.004086e0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x8927a4]
mov edx, dword [eax + ecx*4 + 0x24b38]
add dword [esi], edx
lea ecx, [ebx + eax + 0x280]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x8927a4]
mov dword [eax + ecx*4 + 0x25578], esi
lea ecx, [ebx + eax + 0x320]
call fcn.004086e0
mov esi, eax
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov dword [eax + ecx*4 + 0x257f8], esi
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
lea esi, [eax + ecx*4 + 0x257f8]
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x25578]
add ecx, dword [esi]
mov dword [esp + 0x18], ecx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0x25f78], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x261f8]
add ecx, 0x1aa2c
call fcn.004086e0
lea edx, [eax + eax*4]
mov eax, dword [0x8927a4]
lea ecx, [edi + edx*4]
mov edx, dword [eax + ecx*4 + 0x25578]
add dword [esi], edx
lea ecx, [eax + 0x1aa2c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x26218]
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*4]
mov eax, dword [ecx + edx*4 + 0x257f8]
mov edx, dword [esi]
add edx, eax
add ebx, 8
inc edi
cmp ebx, 0x1a4e0
mov dword [esi], edx
jl 0x4d69c0
add ecx, 0x1aa2c
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x26238]
add ecx, 0x1a94c
call fcn.004086e0
mov edx, dword [esi]
mov ecx, dword [0x8927a4]
add edx, eax
add ecx, 0x1aa2c
mov dword [esi], edx
call fcn.004086e0
mov ecx, dword [0x8927a4]
lea esi, [ecx + eax*4 + 0x26258]
add ecx, 0x1a944
call fcn.004086e0
mov ecx, dword [esi]
push 0x257
push 0x31f
add ecx, eax
push 0
mov dword [esi], ecx
push 0
mov ecx, 0x921480
mov byte [0x892d61], 0
call fcn.00542090
mov ecx, dword [0x892d38]
mov eax, dword [0x8927a4]
mov byte [ecx + 8], 0
mov cx, word [eax + 0x244d0]
mov dx, word [eax + 0x1e964]
mov word [0x5ef7a8], dx
mov word [0x5ef7b0], cx
mov word [0x5ef7b8], dx
mov word [0x5ef7c0], cx
push 9
mov byte [eax + 0x24594], 0
call fcn.00414140
mov ebx, dword [0x892d48]
mov edx, dword [0x8927a4]
add esp, 4
test ebx, ebx
mov dword [edx + 0x202c8], 0xffffffff
je 0x4d6d15
call fcn.00408310
jmp 0x4d6d1f
push 0x8993b8
call fcn.00406390
mov edx, dword [ebp + 8]
mov esi, dword [0x8927a4]
xor eax, eax
mov byte [esp + 0x98], 0
mov ecx, 0x7f
lea edi, [esp + 0x99]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
sub edx, 5
stosb byte es:[edi], al
xor eax, eax
xor ebx, ebx
test edx, edx
mov dword [ebp + 8], edx
jle 0x4d6da9
mov ecx, dword [ebp + 0x10]
mov cl, byte [ebx + ecx]
cmp cl, 0xa
jne 0x4d6d99
lea eax, [esp + 0x98]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d6d66
push 1
push 0
sub eax, edx
lea edx, [esp + 0xa0]
push edx
push 0
push 0
push 2
push esi
call fcn.00423aa0
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
jmp 0x4d6da1
mov byte [esp + eax + 0x98], cl
inc eax
mov ecx, dword [ebp + 8]
inc ebx
cmp ebx, ecx
jl 0x4d6d51
lea eax, [esp + 0x98]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d6db3
push 1
push 0
lea ecx, [esp + 0xa0]
push ecx
push 0
push 0
push 2
sub eax, edx
push esi
call fcn.00423aa0
lea ecx, [esi + 0x1aa24]
call fcn.00406a60
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov bl, al
call fcn.004086e0
mov edx, dword [0x8927a4]
mov byte [eax + edx + 0x805c8], bl
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x4d6e5e
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x30]
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
mov eax, dword [esp + 0x10]
push eax
call fcn.0050e020
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ebx, dword [0x8927a4]
mov eax, dword [ebp + 0x10]
movzx esi, byte [ebx + 0x23dd0]
mov cx, word [eax]
add eax, 2
xor edx, edx
test esi, esi
jle case.default.0x4d6fbb
movzx edi, cx
lea ecx, [ebx + 0x23dfc]
cmp dword [ecx], edi
je 0x4d6ecb
inc edx
add ecx, 4
cmp edx, esi
jl 0x4d6ea8
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp edx, 0xffffffff
je case.default.0x4d6fbb
movzx esi, byte [eax]
inc eax
test esi, esi
mov dword [esp + 0x10], esi
jne 0x4d6efe
mov dword [ebx + edx*4 + 0x23dd4], esi
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
xor ecx, ecx
mov dword [ebx + edx*4 + 0x23dd4], 1
mov edi, edx
shl edi, 7
test esi, esi
setl cl
mov dword [esp + 0x18], edi
lea edi, [edi + ebx + 0x23e24]
dec ecx
and ecx, esi
mov ebx, ecx
shr ecx, 2
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
add eax, ecx
lea edi, [esi + ecx]
mov esi, dword [0x8927a4]
mov byte [edi + esi + 0x23e24], 0
mov cl, byte [eax]
mov byte [edx + esi + 0x24324], cl
mov ecx, dword [eax + 1]
inc eax
mov dword [esi + edx*4 + 0x24330], ecx
mov cl, byte [eax + 4]
add eax, 4
inc eax
mov byte [edx + esi + 0x24358], cl
mov cl, byte [eax]
inc eax
mov byte [edx + esi + 0x2436c], cl
mov cl, byte [eax]
inc eax
mov byte [edx + esi + 0x24376], cl
mov cl, byte [eax]
mov byte [edx + esi + 0x24380], cl
mov al, byte [eax + 1]
mov byte [edx + esi + 0x2438a], al
jmp 0x4d719b
cmp eax, 0x3010
jg 0x4d7226
je 0x4d71e5
sub eax, 0x21f1
cmp eax, 6
ja case.default.0x4d6fbb
jmp dword [eax*4 + 0x4d7278]
mov ecx, dword [ebp + 0x10]
mov si, word [ecx]
mov edi, dword [0x8927a4]
mov ecx, edi
call fcn.004242c0
cmp eax, 0xffffffff
je case.default.0x4d6fbb
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 8], eax
jne 0x4d6fee
mov dword [ecx + 8], 0xffffffff
mov dword [edi + eax*4 + 0x23dd4], 0
jmp 0x4d719b
mov edi, dword [ebp + 0x10]
mov ecx, dword [0x8927a4]
xor esi, esi
mov si, word [edi]
add edi, 2
call fcn.004242c0
cmp eax, 0xffffffff
je case.default.0x4d6fbb
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 8], eax
jne 0x4d702d
mov dword [ecx + 8], 0xffffffff
mov edx, dword [ebp + 8]
mov esi, dword [0x8927a4]
xor ebx, ebx
lea ecx, [edx - 2]
test ecx, ecx
setl bl
shl eax, 7
add eax, esi
mov esi, edi
lea edi, [eax + 0x23e24]
dec ebx
and ecx, ebx
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [eax + edx + 0x23e22], 0
jmp 0x4d719b
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x8927a4]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004242c0
cmp eax, 0xffffffff
je case.default.0x4d6fbb
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 8], eax
jne 0x4d709c
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x24324], dl
jmp 0x4d719b
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x8927a4]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004242c0
cmp eax, 0xffffffff
je case.default.0x4d6fbb
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 8], eax
jne 0x4d70db
mov dword [ecx + 8], 0xffffffff
mov ecx, dword [edi]
mov dword [ebx + eax*4 + 0x24330], ecx
jmp 0x4d719b
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x8927a4]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004242c0
cmp eax, 0xffffffff
je case.default.0x4d6fbb
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 8], eax
jne 0x4d711a
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x2436c], dl
jmp 0x4d719b
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x8927a4]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004242c0
cmp eax, 0xffffffff
je case.default.0x4d6fbb
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 8], eax
jne 0x4d7156
mov dword [ecx + 8], 0xffffffff
mov cl, byte [edi]
mov byte [eax + ebx + 0x24376], cl
jmp 0x4d719b
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x8927a4]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004242c0
cmp eax, 0xffffffff
je case.default.0x4d6fbb
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 8], eax
jne 0x4d7192
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x24380], dl
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je case.default.0x4d6fbb
mov edi, eax
call fcn.0050e4e0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [0x8926bc]
test ecx, ecx
je case.default.0x4d6fbb
call fcn.004fd330
mov esi, dword [ebp + 0x10]
movzx ecx, byte [esi]
call fcn.004fc730
movzx edx, byte [esi]
mov eax, dword [0x8927a4]
mov cl, 1
mov byte [edx + eax + 0x247ce], cl
cmp byte [eax + 0x24408], cl
jne case.default.0x4d6fbb
mov cl, byte [eax + 0x24579]
cmp cl, byte [eax + 0x24578]
jmp 0x4d722b
cmp eax, 0x3432
jne case.default.0x4d6fbb
push 9
call fcn.00414140
add esp, 4
mov ecx, dword [esp + 0x3ec]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc