Function at 0x4d23c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov edi, edx
movzx eax, byte [ebp + 0x20]
mov byte [esp + 0x3b], al
mov eax, dword [edx + 0x1c]
test al, 0x80
jne 0x4d23f2
mov dword [esp + 0x70], 1
mov dword [esp + 0x24], 0
jmp 0x4d2420
mov ebx, edi
lea esi, [edi + 8]
nop word [eax + eax]
mov edi, dword [esi]
movzx edx, word [edi + 0x37]
and edx, 3
lea esi, [edi + 0x14]
cmp dx, 2
jne 0x4d2400
mov dword [esp + 0x24], edi
movzx edx, word [edi + 0x32]
mov dword [esp + 0x70], edx
mov edi, ebx
mov edx, dword [ecx]
mov dword [esp + 0x50], edx
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx + 8]
mov dword [esp + 4], ecx
movzx ecx, byte [ebp + 0x20]
mov dword [esp + 0x54], ecx
test eax, 0x800
mov dword [esp + 0x14], edi
jne 0x4d2761
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x30], eax
mov esi, dword [edi + 0x10]
test esi, esi
je 0x4d2ce3
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x50]
test byte [eax + 0x21], 2
jne 0x4d2cee
mov ecx, dword [ebp + 0x14]
mov eax, ecx
not eax
mov edx, dword [esp + 0xc]
mov dword [edx + 0x34], eax
xor edx, edx
cmp dword [esi], 0
jle 0x4d2cf8
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
cmp byte [ebp + 0x20], 0xb
mov ecx, 2
mov eax, dword [esp + 0x54]
cmove eax, ecx
movzx eax, al
mov dword [esp + 8], eax
lea eax, [esi + 0xc]
mov dword [esp + 0x74], 0
mov dword [esp + 0x58], esi
jmp 0x4d24e1
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x58]
inc edx
add eax, 0x10
cmp edx, dword [esi]
jge 0x4d2d00
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], eax
mov ebx, dword [eax - 4]
cmp dword [ebp + 0x2c], 0
je 0x4d2567
pxor xmm0, xmm0
movdqa xmmword [esp + 0xc0], xmm0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xc4], 0x4d5420
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0xd8], eax
test ebx, ebx
je 0x4d2550
lea ecx, [esp + 0xc0]
mov edx, ebx
call fcn.00499fb0
movzx eax, word [esp + 0xd4]
jmp 0x4d2552
xor eax, eax
mov ecx, eax
and ecx, 0xfffffffd
cmp byte [ebp + 0x1c], 0
cmovne ecx, eax
test cx, cx
je 0x4d2710
cmp byte [esp + 0x74], 0
jne 0x4d2586
mov ecx, dword [esp + 4]
mov edx, edi
push dword [esp + 0x1c]
call fcn.0049f530
add esp, 4
mov al, 1
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x18], ecx
lea edi, [ecx - 1]
mov dword [eax + 0x38], edi
test ebx, ebx
je 0x4d25c0
mov esi, dword [esp + 0x50]
mov ecx, esi
mov edx, ebx
push 0
push 0
call fcn.0049d550
add esp, 8
mov ebx, eax
mov ecx, esi
jmp 0x4d25c6
xor ebx, ebx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 8]
cmp byte [ecx + 0x57], 0
je 0x4d26e0
test ebx, ebx
je 0x4d25e3
mov edx, ebx
call fcn.00469350
mov edx, dword [esp + 8]
cmp edx, 4
mov edi, dword [esp + 0x14]
jne 0x4d2640
mov ebx, dword [esp + 4]
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x4d271d
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov edx, dword [ebp + 0x24]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d2733
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
cmp edx, 5
mov eax, 2
cmove edx, eax
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
mov dword [esp + 8], edx
jne 0x4d2685
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x74], 0
jne 0x4d267a
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x4d267a
mov byte [ecx + 0x17], 1
call fcn.004346f0
mov ebx, eax
mov edx, dword [esp + 8]
cmp edx, 2
mov esi, edx
jne 0x4d269c
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
mov ecx, ebx
mov edx, 0x46
push 0
push dword [esp + 0x30]
push 0
push esi
push 0x113
call fcn.00493a50
add esp, 0x14
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x4d26cd
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 3
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
jmp 0x4d2738
push 0x10
push edi
push ebx
push dword [esp + 0x18]
call fcn.0049db10
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
add esp, 0x10
test ebx, ebx
jne 0x4d25d8
jmp 0x4d25e3
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
jmp 0x4d24d5
mov ecx, ebx
mov edx, 8
push 0
push dword [ebp + 0x24]
push 0
call fcn.004747e0
add esp, 0xc
mov edx, 4
mov esi, dword [esp + 0x18]
mov ecx, dword [ebx + 0xc]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
mov dword [esp + 8], edx
jns 0x4d24c0
mov edx, ebx
push esi
call fcn.0049d4a0
add esp, 4
jmp 0x4d24c9
movsx edx, word [edi + 0x22]
mov eax, dword [ebp + 0x14]
inc eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x34], 0
mov al, 1
mov dword [esp + 0x1c], eax
pcmpeqd xmm7, xmm7
xor eax, eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], edx
test dx, dx
mov dword [esp + 0x28], eax
jle 0x4d2c70
xor esi, esi
jmp 0x4d27b2
inc dword [esp + 0x18]
mov edx, dword [esp + 0x10]
inc esi
cmp esi, edx
je 0x4d2c70
mov ebx, dword [edi + 4]
lea eax, [esi + esi*2]
movzx ecx, byte [ebx + eax*4 + 4]
and cl, 0xf
je 0x4d27a9
mov dword [esp + 8], eax
movsx eax, word [edi + 0x20]
cmp esi, eax
je 0x4d27a9
mov eax, dword [esp + 8]
movzx eax, word [ebx + eax*4 + 0xa]
test al, 0x60
sete dl
or dl, byte [esp + 0x34]
test dl, 1
je 0x4d27a1
cmp dword [ebp + 0x2c], 0
je 0x4d27fe
mov edx, dword [ebp + 0x2c]
cmp dword [edx + esi*4], 0
jns 0x4d27fe
mov edx, eax
and edx, 0x60
test dx, dx
je 0x4d27a5
cmp cl, 0xb
movzx ecx, cl
mov edx, 2
cmove ecx, edx
cmp byte [ebp + 0x20], 0xb
cmovne ecx, dword [esp + 0x54]
cmp cl, 5
jne 0x4d2839
test byte [esp + 0x34], 1
jne 0x4d2832
mov edx, 5
mov eax, dword [esp + 8]
cmp word [ebx + eax*4 + 8], 0
jne 0x4d284d
mov edx, 2
jmp 0x4d284d
test al, 0x60
setne al
or al, byte [esp + 0x1c]
test al, 1
je 0x4d27a5
movzx edx, cl
test si, si
mov dword [esp + 0x2c], edx
js 0x4d29f5
mov eax, dword [edi + 0x1c]
and eax, 0x20
je 0x4d29f5
xor eax, eax
test si, si
je 0x4d29f9
mov ecx, 0
cmp esi, 0x11
jb 0x4d29c8
mov ecx, esi
and ecx, 0xf
mov eax, 0x10
cmove ecx, eax
mov eax, esi
sub eax, ecx
lea edx, [ebx + 0xbe]
pxor xmm0, xmm0
pxor xmm1, xmm1
nop
movzx edi, word [edx - 0x60]
movd xmm2, edi
movzx edi, word [edx - 0x6c]
movd xmm4, edi
punpcklwd xmm4, xmm2
movzx edi, word [edx - 0x78]
movd xmm2, edi
movzx edi, word [edx - 0x84]
movd xmm3, edi
punpcklwd xmm3, xmm2
punpckldq xmm3, xmm4
movzx edi, word [edx - 0x90]
movd xmm2, edi
movzx edi, word [edx - 0x9c]
movd xmm4, edi
punpcklwd xmm4, xmm2
movzx edi, word [edx - 0xa8]
movd xmm5, edi
movzx edi, word [edx - 0xb4]
movd xmm2, edi
punpcklwd xmm2, xmm5
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm3
movzx edi, word [edx]
movd xmm3, edi
movzx edi, word [edx - 0xc]
movd xmm5, edi
punpcklwd xmm5, xmm3
movzx edi, word [edx - 0x18]
movd xmm3, edi
movzx edi, word [edx - 0x24]
movd xmm4, edi
punpcklwd xmm4, xmm3
punpckldq xmm4, xmm5
movzx edi, word [edx - 0x30]
movd xmm3, edi
movzx edi, word [edx - 0x3c]
movd xmm5, edi
punpcklwd xmm5, xmm3
movzx edi, word [edx - 0x48]
movd xmm6, edi
movzx edi, word [edx - 0x54]
movd xmm3, edi
punpcklwd xmm3, xmm6
punpckldq xmm3, xmm5
punpcklqdq xmm3, xmm4
movdqa xmm4, xmmword [0x529720]
pxor xmm2, xmm7
psrlw xmm2, 5
pand xmm2, xmm4
paddw xmm0, xmm2
pxor xmm3, xmm7
psrlw xmm3, 5
pand xmm3, xmm4
paddw xmm1, xmm3
add edx, 0xc0
add ecx, 0x10
cmp esi, ecx
jne 0x4d28a0
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd ecx, xmm0
lea edx, [eax + eax*2]
lea edx, [ebx + edx*4]
add edx, 0xa
nop word cs:[eax + eax]
movzx edi, word [edx]
bt edi, 5
sbb cx, 0xffff
inc eax
add edx, 0xc
cmp esi, eax
jne 0x4d29e0
jmp 0x4d29fb
mov ecx, esi
jmp 0x4d2a20
xor ecx, ecx
movsx eax, si
lea eax, [eax + eax*2]
test byte [ebx + eax*4 + 0xa], 0x20
jne 0x4d2a0e
mov edi, dword [esp + 0x14]
jmp 0x4d2a1c
mov eax, esi
sub eax, ecx
mov edi, dword [esp + 0x14]
add ax, word [edi + 0x24]
mov ecx, eax
mov edx, dword [esp + 0x2c]
movsx eax, cx
add eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
lea eax, [edx - 1]
cmp eax, 4
ja case.0x4d2a3a.4
jmp dword [eax*4 + 0x529750]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
mov eax, dword [esp + 8]
lea eax, [ebx + eax*4]
push dword [eax]
push dword [edi]
push str._s._s
push dword [esp + 0x5c]
call fcn.004346d0
add esp, 0x10
mov ebx, eax
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x4d2ab0
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x45
mov dword [ecx + eax*4 + 4], 0x513
mov edx, dword [esp + 0x2c]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d2acc
mov ecx, edi
mov edx, 0x45
push dword [esp + 0x58]
push dword [esp + 0x30]
push 0x513
call fcn.004747e0
add esp, 0xc
mov edx, dword [esp + 0x10]
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
pcmpeqd xmm7, xmm7
je 0x4d2af5
test ebx, ebx
mov edi, dword [esp + 0x14]
je 0x4d2b0b
mov edx, ebx
call fcn.0043f4f0
pcmpeqd xmm7, xmm7
mov edx, dword [esp + 0x10]
jmp 0x4d2b0b
mov eax, dword [edi + 0x68]
mov ecx, dword [edi + 0x6c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x13], 0xfa
mov dword [eax + ecx*4 - 4], ebx
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
test eax, eax
jle 0x4d27a9
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
jmp 0x4d27a9
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d2bb4
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x32
mov edx, dword [esp + 0x58]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp + 0x24]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d27a5
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x4d2bd3
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x2c], edx
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x33
mov edx, dword [esp + 0x58]
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 0x4d2bec
mov edx, 0x32
push 0
push dword [ebp + 0x24]
push dword [esp + 0x60]
call fcn.004747e0
pcmpeqd xmm7, xmm7
add esp, 0xc
jmp 0x4d27a5
mov edx, 0x33
push 0
push 0
push dword [esp + 0x60]
call fcn.004747e0
add esp, 0xc
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 8]
movzx eax, word [ebx + eax*4 + 8]
xor edx, edx
test eax, eax
je 0x4d2c01
cmp byte [edi + 0x2b], 0
je 0x4d2c52
mov ecx, dword [esp + 0xc]
push dword [esp + 0x58]
call fcn.00499650
add esp, 4
mov eax, dword [esp + 4]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x4d2c3e
lea ecx, [eax - 1]
mov edx, dword [esp + 0x2c]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 4]
add ecx, dword [edx + 0x68]
inc dword [esp + 0x28]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x10]
pcmpeqd xmm7, xmm7
jmp 0x4d27a9
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x4d2c01
cmp dword [ecx], eax
jl 0x4d2c01
shl eax, 4
mov edx, dword [eax + ecx - 8]
jmp 0x4d2c01
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
or eax, esi
sete al
mov ecx, dword [esp + 0x34]
or cl, al
test cl, 1
jne 0x4d2448
mov al, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], 0
test esi, esi
mov eax, esi
jle 0x4d2790
mov dword [esp + 0x1c], 0
test byte [edi + 0x1c], 0x60
je 0x4d2790
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x98]
push edi
call fcn.004d1f80
mov eax, dword [esp + 0x2c]
pcmpeqd xmm7, xmm7
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x1c], 0
jmp 0x4d2790
mov dword [esp + 0x80], 0
mov dword [esp + 0x74], 0
jmp 0x4d2d0b
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x34], 0
mov eax, dword [edi + 8]
mov cl, 1
mov dword [esp + 0x9c], ecx
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x4d2d60
cmp dword [ecx], 0
je 0x4d2d6c
test eax, eax
je 0x4d2d90
xor ebx, ebx
xor edi, edi
nop dword [eax + eax]
mov eax, dword [eax + 0x14]
inc edi
add ebx, 0xa
test eax, eax
jne 0x4d2d30
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4d2f6f
mov edx, ebx
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
jne 0x4d2f80
jmp 0x4d514f
mov esi, eax
mov dword [esp + 0x30], 0
jmp 0x4d2d92
xor edx, edx
cmp byte [ecx + 0x14], 0
mov dword [esp + 0x80], 0
cmove ecx, edx
mov dword [esp + 0x30], ecx
setne cl
add cl, cl
or cl, 4
mov byte [esp + 0x3b], cl
mov esi, eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x6c], 0
test eax, 0x6000
je 0x4d2e5f
test eax, 0x2000
jne 0x4d2e7c
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x3c], 0
test byte [eax + 0x21], 0x40
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x24]
je 0x4d320a
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x2b], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
jne 0x4d320a
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov esi, dword [eax + 0x3c]
mov edi, dword [esi + 0x44]
test edi, edi
je 0x4d308b
movzx ebx, byte [ecx]
test bl, bl
je 0x4d309b
lea edx, [ecx + 1]
xor eax, eax
nop word cs:[eax + eax]
movzx ebx, bl
movzx ebx, byte [ebx + 0x52a853]
add ebx, eax
imul eax, ebx, 0x9e3779b1
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x4d2e40
jmp 0x4d309d
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
jmp 0x4d3206
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x38], 0
mov edi, dword [esp + 0xc]
je 0x4d2ebc
cmp byte [edi + 0x97], 0
jne 0x4d2ece
mov ecx, edi
mov edx, dword [esp + 0x14]
push 0
push 0
push 0x80
call fcn.004cb740
add esp, 0xc
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4d3191
jmp 0x4d2ece
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x4d2ece
cmp dword [eax + 0x30], 0
jne 0x4d2e8e
mov eax, dword [edi]
mov dword [esp + 0x3c], 0
test byte [eax + 0x21], 0x40
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
je 0x4d320a
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x2b], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
jne 0x4d320a
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov esi, dword [eax + 0x3c]
mov edi, dword [esi + 0x44]
test edi, edi
je 0x4d3093
movzx ebx, byte [ecx]
test bl, bl
je 0x4d30fc
lea edx, [ecx + 1]
xor eax, eax
nop word cs:[eax + eax]
movzx ebx, bl
movzx ebx, byte [ebx + 0x52a853]
add ebx, eax
imul eax, ebx, 0x9e3779b1
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x4d2f50
jmp 0x4d30fe
mov ecx, ebx
xor edx, edx
call fcn.00424d20
test eax, eax
je 0x4d514f
push ebx
push 0
push eax
mov dword [esp + 0x2c], edi
mov edi, eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [ebp + 0x30]
mov dword [esp + 0x80], edi
mov dword [ecx + 0x18], edi
mov esi, dword [esp + 0x20]
mov dword [esp + 8], 0
mov ebx, dword [esp + 0x80]
jmp 0x4d2fc9
mov esi, edi
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x4d3026
cmp dword [ecx], 0
je 0x4d3026
mov edi, dword [ecx + 0x1c]
test edi, edi
je 0x4d3020
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 8]
xor esi, esi
test edx, edx
je 0x4d2ffc
cmp edx, edi
je 0x4d2ffc
xor esi, esi
nop dword [eax + eax]
inc esi
mov edx, dword [edx + 0x14]
test edx, edx
je 0x4d2ffc
cmp edx, edi
jne 0x4d2ff0
lea eax, [ebx + esi]
mov edi, dword [esp + 0x20]
cmp byte [eax + edi*8], 0
jne 0x4d2fc0
mov byte [eax + edi*8], 1
mov eax, dword [esp + 8]
mov dword [ebx + eax*8], edx
mov dword [ebx + eax*8 + 4], esi
inc eax
mov dword [esp + 8], eax
jmp 0x4d2fc0
mov esi, dword [esp + 0x20]
jmp 0x4d2fc2
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
xor eax, eax
test ecx, ecx
je 0x4d307b
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x80]
jmp 0x4d304a
mov eax, ebx
inc eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x4d3063
lea edx, [edi + eax]
mov ebx, eax
mov eax, dword [esp + 0x20]
cmp byte [edx + eax*8], 0
jne 0x4d3040
mov dword [edi + esi*8], ecx
mov dword [edi + esi*8 + 4], ebx
inc esi
jmp 0x4d3040
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x20]
jmp 0x4d2d96
mov dword [esp + 0x9c], 0
jmp 0x4d2d92
lea eax, [esi + 0x40]
add esi, 0x3c
jmp 0x4d30ab
lea eax, [esi + 0x40]
add esi, 0x3c
jmp 0x4d310c
xor eax, eax
xor edx, edx
div dword [esi + 0x38]
lea esi, [edi + edx*8]
lea eax, [edi + edx*8]
add eax, 4
mov esi, dword [esi]
mov edx, 0x53e0d4
test esi, esi
je 0x4d3165
mov eax, dword [eax]
dec esi
mov dword [esp + 8], eax
mov edi, dword [eax + 0xc]
xor ebx, ebx
jmp 0x4d30e0
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [eax + 0x52a853]
jne 0x4d30f2
inc ebx
movzx edx, byte [edi + ebx]
movzx eax, byte [ecx + ebx]
cmp dl, al
jne 0x4d30d0
test edx, edx
jne 0x4d30df
jmp 0x4d3161
test esi, esi
mov eax, dword [esp + 8]
jne 0x4d30ba
jmp 0x4d315a
xor eax, eax
xor edx, edx
div dword [esi + 0x38]
lea esi, [edi + edx*8]
lea eax, [edi + edx*8]
add eax, 4
mov esi, dword [esi]
mov edx, 0x53e0d4
test esi, esi
je 0x4d3165
mov eax, dword [eax]
dec esi
mov dword [esp + 8], eax
mov edi, dword [eax + 0xc]
xor ebx, ebx
jmp 0x4d3140
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [eax + 0x52a853]
jne 0x4d3152
inc ebx
movzx edx, byte [edi + ebx]
movzx eax, byte [ecx + ebx]
cmp dl, al
jne 0x4d3130
test edx, edx
jne 0x4d313f
jmp 0x4d3161
test esi, esi
mov eax, dword [esp + 8]
jne 0x4d3117
mov edx, 0x53e0d4
jmp 0x4d3165
mov edx, dword [esp + 8]
mov dword [esp + 0x4c], 0
cmp dword [edx + 8], 0
mov edi, dword [esp + 0xc]
jne 0x4d3191
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x30], 0
je 0x4d378c
mov edi, dword [esp + 0xc]
mov ebx, dword [edi + 0x2c]
inc ebx
mov dword [edi + 0x2c], ebx
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
mov dword [esp + 0x3c], ebx
jle 0x4d31dd
lea ecx, [eax + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x47
mov dword [ecx + eax*4 + 4], 0
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d31f3
mov ecx, dword [esp + 4]
mov edx, 0x47
push 0
push ebx
push 0
call fcn.004747e0
add esp, 0xc
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x38]
dec ecx
mov dword [esp + 0x40], ecx
mov dword [eax + 0x38], ecx
mov eax, dword [esp + 0x24]
cmp byte [ebp + 0x1c], 0
je 0x4d37ae
mov ecx, 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x60], 0
mov edx, 0
mov dword [esp + 0x68], 0
test eax, eax
jne 0x4d3776
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x38]
mov dword [esp + 8], ecx
lea edi, [ecx - 1]
mov dword [eax + 0x38], edi
movzx ecx, byte [esp + 0x3b]
mov eax, ecx
cmp cl, 0xb
jne 0x4d327d
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 0x2a]
cmp cl, 0xb
mov eax, 2
cmovne eax, ecx
movzx ebx, al
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4d3309
mov ecx, eax
nop word cs:[eax + eax]
cmp dword [ecx], 0
je 0x4d32be
cmp dword [ecx + 0x1c], 0
je 0x4d32be
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x4d32a0
xor ecx, ecx
cmp ecx, eax
jne 0x4d32d5
mov esi, eax
xor eax, eax
jmp 0x4d3322
xor eax, eax
cmp byte [ecx + 0x14], 0
setne al
lea ebx, [eax + eax]
add ebx, 4
mov eax, dword [esp + 0x30]
cmp ecx, eax
je 0x4d32b8
mov esi, ecx
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x4d330f
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
mov eax, dword [ecx + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4], 8
pxor xmm0, xmm0
movdqu xmmword [eax + ecx*4 + 1], xmm0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, edx
jmp 0x4d3322
xor esi, esi
xor eax, eax
jmp 0x4d3322
mov edx, 8
push 0
push 0
push 0
call fcn.004747e0
add esp, 0xc
mov dword [esp + 0x48], esi
cmp ebx, 5
mov dword [esp + 0x88], eax
jne 0x4d3399
cmp byte [esp + 0x3b], 5
je 0x4d3399
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0
je 0x4d3399
cmp dword [esp + 0x88], 0
jne 0x4d3399
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d3381
lea edx, [eax + 1]
mov dword [esp + 0x60], edx
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4], 8
pxor xmm0, xmm0
movdqu xmmword [ecx + eax*4 + 1], xmm0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d3399
mov edx, 8
push 0
push 0
push 0
call fcn.004747e0
add esp, 0xc
inc eax
mov dword [esp + 0x60], eax
cmp dword [ebp + 0x18], 0
mov esi, dword [esp + 4]
je 0x4d3404
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x4d33da
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x35
mov edx, dword [ebp + 0x14]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov edx, dword [ebp + 0x18]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d33f0
mov ecx, esi
mov edx, 0x35
push dword [ebp + 0x18]
push edi
push dword [ebp + 0x14]
call fcn.004747e0
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x4d3404
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x90
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x4d343b
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x1e
mov edx, dword [ebp + 0xc]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov esi, dword [ebp + 0x14]
mov dword [ecx + eax*4 + 0xc], esi
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d3452
mov ecx, esi
mov edx, 0x1e
mov esi, dword [ebp + 0x14]
push esi
push edi
push dword [ebp + 0xc]
call fcn.004747e0
add esp, 0xc
lea eax, [ebx - 1]
cmp eax, 5
mov edi, dword [esp + 0x20]
ja case.default.0x4d3462
jmp dword [eax*4 + 0x529764]
cmp dword [esp + 0x3c], 0
je 0x4d35bb
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x14], 1
sub esp, 0x24
movdqa xmm0, xmmword [0x529730]
movdqu xmmword [esp + 0x10], xmm0
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 0x20], 0xffffffff
mov edx, dword [esp + 0x38]
call fcn.004cac80
add esp, 0x24
mov ebx, dword [esp + 4]
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x4d3603
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x56
mov edx, dword [esp + 0x3c]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], 1
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d361a
mov ebx, 2
mov ecx, dword [esp + 0xc]
mov edx, ebx
push dword [esp + 0x14]
call fcn.004d5490
add esp, 4
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov ebx, dword [esp + 4]
jmp 0x4d362a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
push dword [ebp + 0xc]
push 0
push dword [esp + 0x1c]
call fcn.004d5560
add esp, 0xc
mov ebx, dword [esp + 4]
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x4d3593
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov edx, dword [ebp + 0x24]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d35a9
mov ecx, ebx
mov edx, 8
push 0
push dword [ebp + 0x24]
push 0
call fcn.004747e0
add esp, 0xc
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
jmp 0x4d362a
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 1
mov edx, dword [esp + 0x14]
cmp dword [edx + 8], 0
mov esi, edi
je 0x4d5157
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x14], 1
push 0xffffffffffffffff
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.004ccac0
add esp, 0x10
mov ebx, dword [esp + 4]
jmp 0x4d362c
mov ecx, ebx
mov edx, 0x56
push 0
push 1
push dword [esp + 0x44]
call fcn.004747e0
add esp, 0xc
mov dword [esp + 0x6c], 1
mov dword [esp + 0x68], 1
mov esi, edi
mov edi, dword [esp + 8]
mov ecx, dword [ebx + 0xc]
neg edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x4d3648
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
jmp 0x4d3653
mov edx, ebx
push edi
call fcn.0049d4a0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
mov ecx, dword [esp + 0x48]
je 0x4d369b
cmp ecx, eax
je 0x4d369b
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jle 0x4d36e0
lea eax, [ecx + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
mov dword [esp + 0x78], ecx
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4], 8
pxor xmm0, xmm0
movdqu xmmword [eax + ecx*4 + 1], xmm0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d36fb
mov dword [esp + 0x78], 0
cmp dword [esp + 0x60], 0
je 0x4d3710
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jle 0x4d3729
lea eax, [ecx + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], eax
mov edx, dword [edx + 0x68]
mov eax, ecx
lea ecx, [ecx + ecx*4]
mov byte [edx + ecx*4], 8
pxor xmm0, xmm0
movdqu xmmword [edx + ecx*4 + 1], xmm0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4d3740
mov ecx, dword [esp + 4]
mov edx, 8
push 0
push 0
push 0
call fcn.004747e0
add esp, 0xc
mov dword [esp + 0x78], eax
xor edx, edx
mov ecx, dword [esp + 0x48]
cmp byte [esp + 0x9c], 0
jne 0x4d3780
jmp 0x4d37df
mov dword [esp + 0x60], 0
xor edx, edx
cmp byte [esp + 0x9c], 0
jne 0x4d3780
jmp 0x4d37df
mov ecx, dword [esp + 4]
mov edx, 8
push 0
push 0
push 0
call fcn.004747e0
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, dword [ecx]
mov ebx, dword [ecx + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x4d376d
mov ecx, dword [esp + 0x60]
test ecx, ecx
cmovle ecx, ebx
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x68]
lea ecx, [edx + ecx*4]
add ecx, 0xffffffec
mov dword [ecx + 8], ebx
mov ecx, dword [esp + 0x48]
mov edx, eax
cmp byte [esp + 0x9c], 0
je 0x4d37df
mov dword [esp + 0x2c], 0
mov ebx, esi
jmp 0x4d37ef
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp byte [ebp + 0x1c], 0
jne 0x4d3214
xor ecx, ecx
mov dword [esp + 0x78], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x60], 0
xor edx, edx
mov dword [esp + 0x68], 0
cmp byte [esp + 0x9c], 0
jne 0x4d3780
mov eax, dword [esp + 0x80]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xb4], edx
test ebx, ebx
je 0x4d4e14
mov dword [esp + 8], ebx
mov edi, dword [ebp + 0x18]
test edi, edi
setne al
mov edx, dword [esp + 4]
lea ebx, [edx + 0x6c]
mov dword [esp + 0x18], ebx
lea ebx, [edx + 0x68]
mov dword [esp + 0x10], ebx
mov ebx, ecx
mov ecx, dword [ebp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x98], edx
mov edx, ecx
mov ecx, ebx
not edx
mov dword [esp + 0x58], edx
cmp dword [esp + 0x4c], 0
setne dl
and dl, al
mov byte [esp + 0x87], dl
pcmpeqd xmm7, xmm7
mov eax, dword [esp + 0xc]
add eax, 0x20
mov dword [esp + 0xb0], eax
lea eax, [edi + 1]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x88]
inc eax
mov dword [esp + 0xa4], eax
xor edx, edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x30]
jmp 0x4d38a5
inc dword [esp + 0x2c]
mov esi, dword [esi + 0x14]
mov edi, esi
mov dword [esp + 8], edi
test edi, edi
je 0x4d4e22
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
cmp dword [ebx + edx*4], 0
je 0x4d4390
test eax, eax
mov ebx, dword [esp + 8]
je 0x4d3927
mov ecx, eax
nop word cs:[eax + eax]
cmp dword [ecx], 0
je 0x4d38e3
cmp dword [ecx + 0x1c], ebx
je 0x4d38e3
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x4d38d0
xor ecx, ecx
cmp dword [esp + 0x88], 0
je 0x4d3927
cmp ecx, eax
jne 0x4d3927
mov eax, dword [esp + 4]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x4d3920
lea ecx, [eax - 1]
mov edx, dword [esp + 0x88]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0x10]
add ecx, dword [edx]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x64], ecx
dec ecx
mov dword [esp + 0x8c], ecx
mov dword [eax + 0x38], ecx
cmp byte [esp + 0x74], 0
jne 0x4d3969
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x14]
push dword [esp + 0x98]
call fcn.0049f530
pcmpeqd xmm7, xmm7
add esp, 4
mov al, 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x20], esi
cmp dword [ebx + 0x24], 0
je 0x4d3a3e
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + eax*4]
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x4d39c4
lea edx, [ecx + 1]
mov edi, dword [esp + 0x18]
mov dword [edi], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x4b
mov dword [edx + ecx*4 + 4], 0
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4d39da
mov ecx, dword [esp + 4]
mov edx, 0x4b
push 0
push eax
push 0
call fcn.004747e0
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x34], ecx
mov edx, dword [ebx + 0x24]
mov ebx, dword [eax]
test edx, edx
je 0x4d3ee3
mov ecx, ebx
push 0
push 0
call fcn.0049d550
add esp, 8
mov edi, eax
cmp byte [ebx + 0x57], 0
jne 0x4d3a1e
push 0x10
push dword [esp + 0x90]
push edi
push dword [esp + 0x18]
call fcn.004991c0
add esp, 0x10
test edi, edi
je 0x4d3a2b
mov ecx, ebx
mov edx, edi
call fcn.00469350
mov eax, dword [esp + 0xc]
mov dword [eax + 0x34], 0
pcmpeqd xmm7, xmm7
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + eax*4]
lea eax, [ecx + 1]
mov dword [esp + 0x34], eax
xor edi, edi
cmp word [ebx + 0x34], 0
mov dword [esp + 0xac], ecx
jne 0x4d3a98
mov eax, ecx
jmp 0x4d3dbc
mov ecx, dword [esp + 4]
mov edx, 0x52
push 0
push eax
push dword [ebp + 0x14]
call fcn.004747e0
pcmpeqd xmm7, xmm7
add esp, 0xc
inc edi
movzx ecx, word [ebx + 0x34]
cmp edi, ecx
jae 0x4d3db0
mov eax, dword [ebx + 4]
movzx eax, word [eax + edi*2]
cmp eax, 0xffff
je 0x4d3afa
cmp eax, 0xfffe
jne 0x4d3af0
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x34], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x28]
mov ecx, edi
shl ecx, 4
mov edx, dword [eax + ecx + 8]
mov eax, dword [esp + 0x34]
add eax, edi
mov ecx, ebx
push eax
call fcn.00499650
pcmpeqd xmm7, xmm7
add esp, 4
mov dword [ebx + 0x34], 0
mov ebx, dword [esp + 8]
jmp 0x4d3a8b
mov ecx, dword [esp + 0x14]
cmp ax, word [ecx + 0x20]
jne 0x4d3b4d
mov eax, dword [esp + 0x34]
add eax, edi
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x4d3a70
lea edx, [ecx + 1]
mov esi, dword [esp + 0x18]
mov dword [esi], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x52
mov ebx, dword [ebp + 0x14]
mov dword [edx + ecx*4 + 4], ebx
mov ebx, dword [esp + 8]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4d3a8b
test ax, ax
js 0x4d3d35
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x1c]
and ecx, 0x20
je 0x4d3d35
movsx ebx, ax
xor ecx, ecx
mov edx, dword [edx + 4]
mov dword [esp + 0x1c], edx
test ax, ax
mov dword [esp + 0x54], ebx
je 0x4d3d13
mov edx, 0
cmp ax, 0x11
jb 0x4d3cea
mov edx, ebx
and edx, 0xf
mov ecx, 0x10
cmove edx, ecx
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x1c]
add edx, 0xbe
pxor xmm0, xmm0
mov ebx, ecx
pxor xmm1, xmm1
nop word cs:[eax + eax]
movzx esi, word [edx - 0x60]
movd xmm2, esi
movzx esi, word [edx - 0x6c]
movd xmm4, esi
punpcklwd xmm4, xmm2
movzx esi, word [edx - 0x78]
movd xmm2, esi
movzx esi, word [edx - 0x84]
movd xmm3, esi
punpcklwd xmm3, xmm2
punpckldq xmm3, xmm4
movzx esi, word [edx - 0x90]
movd xmm2, esi
movzx esi, word [edx - 0x9c]
movd xmm4, esi
punpcklwd xmm4, xmm2
movzx esi, word [edx - 0xa8]
movd xmm5, esi
movzx esi, word [edx - 0xb4]
movd xmm2, esi
punpcklwd xmm2, xmm5
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm3
movzx esi, word [edx]
movd xmm3, esi
movzx esi, word [edx - 0xc]
movd xmm5, esi
punpcklwd xmm5, xmm3
movzx esi, word [edx - 0x18]
movd xmm3, esi
movzx esi, word [edx - 0x24]
movd xmm4, esi
punpcklwd xmm4, xmm3
punpckldq xmm4, xmm5
movzx esi, word [edx - 0x30]
movd xmm3, esi
movzx esi, word [edx - 0x3c]
movd xmm5, esi
punpcklwd xmm5, xmm3
movzx esi, word [edx - 0x48]
movd xmm6, esi
movzx esi, word [edx - 0x54]
movd xmm3, esi
punpcklwd xmm3, xmm6
punpckldq xmm3, xmm5
punpcklqdq xmm3, xmm4
movdqa xmm4, xmmword [0x529720]
pxor xmm2, xmm7
psrlw xmm2, 5
pand xmm2, xmm4
paddw xmm0, xmm2
pxor xmm3, xmm7
psrlw xmm3, 5
pand xmm3, xmm4
paddw xmm1, xmm3
add edx, 0xc0
add ebx, 0xfffffff0
jne 0x4d3bc0
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd edx, xmm0
mov ebx, dword [esp + 0x54]
sub ebx, ecx
lea ecx, [ecx + ecx*2]
mov esi, dword [esp + 0x1c]
lea ecx, [esi + ecx*4]
add ecx, 0xa
nop dword [eax]
movzx esi, word [ecx]
bt esi, 5
sbb dx, 0xffff
add ecx, 0xc
dec ebx
jne 0x4d3d00
jmp 0x4d3d15
xor edx, edx
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + ecx*2]
mov esi, dword [esp + 0x1c]
test byte [esi + ecx*4 + 0xa], 0x20
jne 0x4d3d2b
mov eax, edx
jmp 0x4d3d35
sub eax, edx
mov ecx, dword [esp + 0x14]
add ax, word [ecx + 0x24]
cwde
add eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x34]
lea ebx, [edi + ecx]
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x4d3d86
lea edx, [ecx + 1]
mov esi, dword [esp + 0x18]
mov dword [esi], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x51
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4d3ae4
mov ecx, dword [esp + 4]
mov edx, 0x51
push 0
push ebx
push eax
call fcn.004747e0
pcmpeqd xmm7, xmm7
add esp, 0xc
jmp 0x4d3ae4
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4]
mov edi, ecx
movzx edi, di
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x4d3e10
lea edx, [ecx + 1]
mov esi, dword [esp + 0x18]
mov dword [esi], edx
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x61
mov esi, dword [esp + 0x34]
mov dword [edx + ecx*4 + 4], esi
mov dword [edx + ecx*4 + 8], edi
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4d3e2b
mov ecx, dword [esp + 4]
mov edx, 0x61
push eax
push edi
push dword [esp + 0x3c]
call fcn.004747e0
pcmpeqd xmm7, xmm7
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
je 0x4d3e47
cmp byte [ebp + 0x1c], 0
jne 0x4d3e47
cmp eax, ebx
je 0x4d3e90
movzx eax, byte [ebx + 0x36]
test al, al
je 0x4d3e90
cmp al, 0xb
movzx ecx, al
mov eax, 2
cmove ecx, eax
movzx eax, byte [esp + 0x3b]
cmp al, 0xb
movzx eax, al
cmove eax, ecx
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x4d3ef4
xor eax, eax
cmp byte [ecx + 0x14], 0
setne al
lea ecx, [eax + eax]
add ecx, 4
jmp 0x4d3ef7
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xc]
mov edi, dword [esp + 0x64]
neg edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x4d3eb3
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
jmp 0x4d3ec8
mov edx, dword [esp + 4]
push edi
call fcn.0049d4a0
mov edx, dword [esp + 0x2c]
pcmpeqd xmm7, xmm7
add esp, 4
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
cmp byte [esp + 0x9c], 0
jne 0x4d3890
jmp 0x4d43a2
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x4d3a1e
jmp 0x4d3a08
movzx ecx, al
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x2c], 0
mov dword [esp + 0xa8], ecx
je 0x4d4009
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x2c]
add ecx, eax
movzx edi, word [ebx + 0x32]
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x6c]
cmp dword [eax + 0x70], edx
mov dword [esp + 0x7c], ecx
jle 0x4d3f6e
lea eax, [edx + 1]
mov esi, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x1a
mov dword [eax + ecx*4 + 4], esi
mov esi, edx
mov edx, dword [esp + 0x8c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d3f8f
mov eax, ecx
mov ecx, dword [esp + 4]
mov edx, 0x1a
push dword [esp + 0x34]
push dword [esp + 0x90]
push eax
call fcn.004747e0
add esp, 0xc
mov edx, eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 4]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x4d3fb5
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x24], ebx
mov dword [esp + 0x94], edx
je 0x4d40be
cmp ecx, 1
jne 0x4d4084
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 0x13]
test al, al
je 0x4d43d1
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [esp + 0x44], eax
cmp dword [ebp + 0x18], 0
je 0x4d40c8
jmp 0x4d43e8
cmp dword [ebx + 0x14], 0
jne 0x4d3f11
cmp eax, ebx
jne 0x4d3f11
cmp ecx, 5
jne 0x4d3f11
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
test eax, 0x2000
je 0x4d4baf
cmp dword [edi + 0x38], 0
je 0x4d4b95
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x97], 0
jne 0x4d4baf
mov ecx, dword [esp + 0xc]
mov edx, edi
push 0
push 0
push 0x80
call fcn.004cb740
mov edx, dword [esp + 0x34]
pcmpeqd xmm7, xmm7
add esp, 0xc
test eax, eax
jne 0x4d3f11
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
jmp 0x4d4baf
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x1c]
sub eax, ecx
jge 0x4d40a9
mov eax, dword [edx + 0x2c]
lea esi, [eax + 1]
mov dword [esp + 0x44], esi
add eax, ecx
mov dword [edx + 0x2c], eax
cmp dword [ebp + 0x18], 0
je 0x4d40c8
jmp 0x4d43e8
mov edi, dword [edx + 0x20]
mov ecx, dword [esp + 0x70]
mov esi, edi
mov dword [esp + 0x44], edi
add ecx, edi
mov dword [edx + 0x20], ecx
mov dword [edx + 0x1c], eax
cmp dword [ebp + 0x18], 0
jne 0x4d43e8
cmp dword [esp + 0xa8], 5
je 0x4d43e8
mov edx, dword [esp + 0xa8]
lea eax, [edx - 1]
cmp eax, 3
jae 0x4d40fb
mov ecx, dword [esp + 0xc]
push ebx
call fcn.004a8c00
add esp, 4
mov esi, dword [esp + 0x20]
jmp 0x4d4211
cmp edx, 4
mov esi, dword [esp + 0x20]
je 0x4d4122
cmp edx, 6
jne 0x4d416f
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
push dword [esp + 0x7c]
push ebx
push dword [esp + 0x1c]
call fcn.004d5560
add esp, 0xc
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d41f9
lea ecx, [eax + 1]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov edx, dword [ebp + 0x24]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d4211
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
cmp dword [esp + 0x3c], 0
je 0x4d4190
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x14], 1
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
cmp byte [esp + 0x87], 0
mov dword [esp + 0x1c], edi
je 0x4d48ca
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4945
lea ecx, [eax + 1]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0xa7
mov edx, dword [ebp + 0xc]
mov edi, edx
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], 0
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
mov ebx, dword [esp + 4]
jmp 0x4d4964
mov ecx, dword [esp + 4]
mov edx, 8
push 0
push dword [ebp + 0x24]
push 0
call fcn.004747e0
add esp, 0xc
pcmpeqd xmm7, xmm7
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xc]
neg ebx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x4d423c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + ebx*4], eax
jmp 0x4d4251
mov edx, dword [esp + 4]
push ebx
call fcn.0049d4a0
mov edx, dword [esp + 0x2c]
pcmpeqd xmm7, xmm7
add esp, 4
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x70]
je 0x4d42ae
cmp ecx, 1
jne 0x4d4291
cmp dword [esp + 0x44], 0
je 0x4d42ae
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x4d42ae
mov ecx, eax
inc cl
mov edx, dword [esp + 0xc]
mov byte [edx + 0x13], cl
lea eax, [edx + eax*4]
add eax, 0x98
mov edx, dword [esp + 0x28]
jmp 0x4d42a8
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x1c], ecx
jge 0x4d42ae
mov eax, dword [esp + 0xc]
mov dword [eax + 0x1c], ecx
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x44]
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x4d42cf
cmp dword [esp + 0x78], 0
je 0x4d42cf
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4d42e6
cmp dword [eax], 0
je 0x4d42e6
cmp dword [eax + 0x1c], 0
je 0x4d42e6
mov eax, dword [esp + 0x30]
cmp byte [esp + 0x9c], 0
je 0x4d43a2
jmp 0x4d3890
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4330
lea ecx, [eax + 1]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov edx, dword [esp + 0xa4]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d4350
mov ecx, dword [esp + 4]
mov edx, 8
push 0
push dword [esp + 0xa8]
push 0
call fcn.004747e0
pcmpeqd xmm7, xmm7
add esp, 0xc
mov eax, dword [esp + 4]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x4d437c
lea ecx, [eax - 1]
mov edx, dword [esp + 0x78]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0x10]
add ecx, dword [edx]
mov dword [ecx + 8], eax
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
nop
mov edx, dword [esp + 0x28]
cmp byte [esp + 0x9c], 0
jne 0x4d3890
lea eax, [edx + 1]
cmp eax, esi
jge 0x4d4e1e
mov ebx, edx
mov edx, ecx
mov ecx, dword [esp + 0x80]
mov edi, dword [ecx + ebx*8 + 8]
mov ecx, dword [ecx + ebx*8 + 0xc]
mov dword [esp + 0x2c], ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x30]
jmp 0x4d3899
mov edx, dword [ecx + 0x2c]
inc edx
mov eax, edx
mov dword [esp + 0x44], edx
mov dword [ecx + 0x2c], edx
cmp dword [ebp + 0x18], 0
je 0x4d40c8
mov eax, dword [esp + 0x14]
test byte [eax + 0x1c], 0x80
jne 0x4d444a
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4859
lea ecx, [eax + 1]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x8e
mov edx, dword [esp + 0x7c]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
cmp dword [ebp + 0x18], 0
jne 0x4d4881
jmp 0x4d40d6
cmp dword [esp + 0x24], ebx
je 0x4d4516
mov eax, dword [esp + 0x24]
cmp word [eax + 0x32], 0
je 0x4d4516
xor edi, edi
jmp 0x4d44b2
lea edx, [ecx + 1]
mov esi, dword [esp + 0x18]
mov dword [esi], edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x5e
mov esi, dword [esp + 0x7c]
mov dword [edx + ecx*4 + 4], esi
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], 0
inc edi
mov eax, dword [esp + 0x24]
movzx eax, word [eax + 0x32]
cmp edi, eax
mov ebx, dword [esp + 8]
jae 0x4d4516
movzx ecx, word [ebx + 0x34]
mov eax, 0xffffffff
test ecx, ecx
je 0x4d44e2
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 4]
movzx edx, word [edx + edi*2]
mov esi, dword [ebx + 4]
xor ebx, ebx
nop
cmp word [esi + ebx*2], dx
je 0x4d44e0
inc ebx
cmp ecx, ebx
jne 0x4d44d0
jmp 0x4d44e2
mov eax, ebx
cwde
mov ecx, dword [esp + 0x44]
lea ebx, [edi + ecx]
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d4470
mov ecx, dword [esp + 4]
mov edx, 0x5e
push ebx
push eax
push dword [esp + 0x84]
call fcn.004747e0
add esp, 0xc
jmp 0x4d44a1
cmp dword [ebp + 0x18], 0
je 0x4d40d6
mov eax, dword [esp + 0x24]
movzx ecx, word [eax + 0x32]
movzx eax, word [ebx + 0x37]
and eax, 3
cmp ax, 2
mov eax, dword [esp + 0x44]
cmove eax, dword [esp + 0x34]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x4d40d6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
add ecx, dword [eax]
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov dword [esp + 0x90], 0x34
jmp 0x4d4585
mov ecx, dword [esp + 0x1c]
inc ecx
mov eax, dword [esp + 0x24]
movzx eax, word [eax + 0x32]
cmp ecx, eax
jae 0x4d40d6
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x1c], ecx
mov ebx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
movzx eax, byte [ecx + 0x54]
movzx esi, byte [ecx + 0xb1]
movzx edi, al
mov edx, edi
push esi
push ebx
call fcn.004707b0
add esp, 8
test esi, esi
jne 0x4d45d1
test eax, eax
je 0x4d45c1
cmp dword [eax + 0xc], 0
jne 0x4d45d1
mov ecx, dword [esp + 0xc]
mov edx, edi
push ebx
push eax
call fcn.004761e0
add esp, 8
mov dword [esp + 0xa0], eax
mov esi, dword [esp + 0x14]
pcmpeqd xmm7, xmm7
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
movzx ecx, word [edx + 0x32]
dec ecx
cmp edi, ecx
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x54]
cmove edx, dword [esp + 0x8c]
mov dword [esp + 0x54], edx
movsx eax, word [ecx + edi*2]
mov edx, 0x35
mov ecx, dword [esp + 0x90]
cmove ecx, edx
mov dword [esp + 0x90], ecx
test eax, eax
js 0x4d4802
mov edx, dword [esi + 0x1c]
and edx, 0x20
je 0x4d4802
xor ebx, ebx
mov ecx, dword [esi + 4]
test ax, ax
je 0x4d47d3
mov edx, 0
cmp ax, 0x11
jb 0x4d47a6
mov edx, eax
and edx, 0xf
mov esi, 0x10
cmove edx, esi
mov ebx, eax
sub ebx, edx
lea edx, [ecx + 0xbe]
pxor xmm0, xmm0
mov edi, ebx
pxor xmm1, xmm1
nop word cs:[eax + eax]
movzx esi, word [edx - 0x60]
movd xmm2, esi
movzx esi, word [edx - 0x6c]
movd xmm4, esi
punpcklwd xmm4, xmm2
movzx esi, word [edx - 0x78]
movd xmm2, esi
movzx esi, word [edx - 0x84]
movd xmm3, esi
punpcklwd xmm3, xmm2
punpckldq xmm3, xmm4
movzx esi, word [edx - 0x90]
movd xmm2, esi
movzx esi, word [edx - 0x9c]
movd xmm4, esi
punpcklwd xmm4, xmm2
movzx esi, word [edx - 0xa8]
movd xmm5, esi
movzx esi, word [edx - 0xb4]
movd xmm2, esi
punpcklwd xmm2, xmm5
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm3
movzx esi, word [edx]
movd xmm3, esi
movzx esi, word [edx - 0xc]
movd xmm5, esi
punpcklwd xmm5, xmm3
movzx esi, word [edx - 0x18]
movd xmm3, esi
movzx esi, word [edx - 0x24]
movd xmm4, esi
punpcklwd xmm4, xmm3
punpckldq xmm4, xmm5
movzx esi, word [edx - 0x30]
movd xmm3, esi
movzx esi, word [edx - 0x3c]
movd xmm5, esi
punpcklwd xmm5, xmm3
movzx esi, word [edx - 0x48]
movd xmm6, esi
movzx esi, word [edx - 0x54]
movd xmm3, esi
punpcklwd xmm3, xmm6
punpckldq xmm3, xmm5
punpcklqdq xmm3, xmm4
pxor xmm2, xmm7
psrlw xmm2, 5
movdqa xmm4, xmmword [0x529720]
pand xmm2, xmm4
paddw xmm0, xmm2
pxor xmm3, xmm7
psrlw xmm3, 5
pand xmm3, xmm4
paddw xmm1, xmm3
add edx, 0xc0
add edi, 0xfffffff0
jne 0x4d4680
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd edx, xmm0
mov edi, eax
sub edi, ebx
lea esi, [ebx + ebx*2]
lea ebx, [ecx + esi*4]
add ebx, 0xa
nop word cs:[eax + eax]
movzx esi, word [ebx]
bt esi, 5
sbb dx, 0xffff
add ebx, 0xc
dec edi
jne 0x4d47c0
jmp 0x4d47d5
xor edx, edx
lea esi, [eax + eax*2]
test byte [ecx + esi*4 + 0xa], 0x20
jne 0x4d47f0
mov eax, edx
jmp 0x4d47fa
sub eax, edx
mov edx, dword [esp + 0x14]
add ax, word [edx + 0x24]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
movsx esi, ax
add esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
add edi, ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x90]
push 0xfffffffffffffffe
push dword [esp + 0xa4]
push edi
push dword [esp + 0x60]
push esi
mov esi, ecx
call fcn.00493a50
add esp, 0x14
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x4d4570
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x90
jmp 0x4d4570
mov ecx, dword [esp + 4]
mov edx, 0x8e
push 0
push dword [esp + 0x48]
push dword [esp + 0x84]
call fcn.004747e0
add esp, 0xc
cmp dword [ebp + 0x18], 0
je 0x4d40d6
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4903
lea ecx, [eax + 1]
mov edi, dword [esp + 0x18]
mov dword [edi], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x35
mov edx, dword [esp + 0x44]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x8c]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [ebp + 0x18]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d4926
xor eax, eax
cmp dword [esp + 0x24], ebx
sete al
movsx esi, cx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push dword [esp + 0x7c]
push eax
push 5
push 0
push esi
push dword [esp + 0x58]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x6c]
call fcn.004cac80
add esp, 0x24
jmp 0x4d49f1
mov ecx, dword [esp + 4]
mov edx, 0x35
push dword [ebp + 0x18]
push dword [esp + 0x90]
push dword [esp + 0x4c]
call fcn.004747e0
add esp, 0xc
mov edi, dword [esp + 0x18]
mov eax, dword [edi]
test eax, eax
jle 0x4d40d6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x90
jmp 0x4d40d6
mov esi, dword [esp + 4]
mov ecx, esi
mov edx, 0xa7
push 0
push 0
mov eax, dword [ebp + 0xc]
mov edi, eax
push eax
call fcn.004747e0
add esp, 0xc
mov ebx, esi
xor eax, eax
mov ecx, dword [esp + 8]
cmp dword [esp + 0x24], ecx
sete al
movsx esi, word [esp + 0x70]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push dword [esp + 0x7c]
push eax
push 5
push 0
push esi
push dword [esp + 0x58]
push dword [ebp + 0x10]
push edi
push dword [esp + 0x6c]
call fcn.004cac80
add esp, 0x24
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x4d49db
lea ecx, [eax + 1]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0xa8
mov dword [ecx + eax*4 + 4], edi
mov dword [ecx + eax*4 + 8], 0
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d49f1
mov ecx, dword [esp + 4]
mov edx, 0xa8
push 0
push 0
push edi
call fcn.004747e0
add esp, 0xc
pcmpeqd xmm7, xmm7
mov ebx, dword [esp + 0x64]
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x28]
je 0x4d4a53
mov dword [esp + 0x6c], 1
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4a64
lea ecx, [eax + 1]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x56
mov edx, dword [esp + 0x3c]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], 1
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d4a7d
mov dword [esp + 0x6c], 1
mov esi, dword [esp + 0x20]
jmp 0x4d421d
mov ecx, dword [esp + 4]
mov edx, 0x56
push 0
push 1
push dword [esp + 0x44]
call fcn.004747e0
add esp, 0xc
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x6c]
cmp dword [eax + 0x70], edx
jle 0x4d4abe
lea eax, [edx + 1]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x90], edx
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4], 8
pxor xmm0, xmm0
movdqu xmmword [eax + ecx*4 + 1], xmm0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d4adc
mov ecx, dword [esp + 4]
mov edx, 8
push 0
push 0
push 0
call fcn.004747e0
add esp, 0xc
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xc]
mov ebx, dword [esp + 0x5c]
not ebx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x4d4b06
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + ebx*4], eax
jmp 0x4d4b1a
mov edx, dword [esp + 4]
push ebx
call fcn.0049d4a0
mov edx, dword [esp + 0x98]
add esp, 4
sub esi, edx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x38]
dec ecx
mov dword [esp + 0x5c], ecx
mov dword [eax + 0x38], ecx
mov ebx, dword [esp + 8]
cmp dword [ebx + 0x24], 0
je 0x4d4b88
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4c51
lea ecx, [eax + 1]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x32
mov edx, dword [esp + 0xac]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp + 0x94]
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
test esi, esi
jg 0x4d4c7e
jmp 0x4d4d39
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x4d4baf
cmp dword [ecx + 0x30], 0
jne 0x4d4040
test eax, 0x4000
jne 0x4d4bd9
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xc]
mov ebx, dword [esp + 0x64]
neg ebx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x4d4c2f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + ebx*4], eax
jmp 0x4d4c44
cmp dword [edi + 0x30], 0
jne 0x4d3f11
mov esi, dword [edi]
mov edi, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test eax, eax
je 0x4d4d82
mov dword [esp + 0x1c], eax
movzx ebx, byte [esi]
test bl, bl
je 0x4d4d8a
lea edx, [esi + 1]
xor eax, eax
nop word [eax + eax]
movzx ecx, bl
movzx ecx, byte [ecx + 0x52a853]
add ecx, eax
imul eax, ecx, 0x9e3779b1
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x4d4c10
jmp 0x4d4d8c
mov edx, dword [esp + 4]
push ebx
call fcn.0049d4a0
mov edx, dword [esp + 0x2c]
pcmpeqd xmm7, xmm7
add esp, 4
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
jmp 0x4d3ecc
mov ecx, dword [esp + 4]
mov edx, 0x32
push 0
push dword [esp + 0x60]
push dword [esp + 0xb4]
call fcn.004747e0
mov edx, dword [esp + 0xa0]
add esp, 0xc
test esi, esi
jle 0x4d4d39
inc esi
jmp 0x4d4c9d
mov edx, edi
inc edx
dec esi
cmp esi, 1
jle 0x4d4d39
mov ecx, edx
mov edi, edx
test edx, edx
jns 0x4d4cac
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
dec ecx
mov eax, dword [esp + 4]
mov edx, dword [eax]
mov eax, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x4d4cc9
lea eax, [ecx + ecx*4]
shl eax, 2
mov ecx, dword [esp + 0x10]
add eax, dword [ecx]
movzx edx, byte [eax]
cmp edx, 0x8e
je 0x4d4c90
mov dword [esp + 0x1c], esi
test byte [edx + 0x52d60f], 1
mov ebx, dword [esp + 0x5c]
jne 0x4d4ce8
mov ebx, dword [eax + 8]
movzx ecx, word [eax + 2]
mov word [esp + 0x54], cx
movsx esi, byte [eax + 1]
mov ecx, dword [esp + 4]
push esi
mov esi, ecx
push dword [eax + 0x10]
push dword [eax + 0xc]
push ebx
push dword [eax + 4]
call fcn.00493a50
add esp, 0x14
mov eax, dword [esi + 0x6c]
test eax, eax
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x1c]
jle 0x4d4c90
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
movzx edx, word [esp + 0x54]
mov word [ecx + eax*4 - 0x12], dx
jmp 0x4d4c90
mov ecx, dword [esp + 0xc]
mov edx, 2
push ebx
call fcn.004a8c00
add esp, 4
mov eax, dword [esp + 4]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x4d4d7a
lea ecx, [eax - 1]
mov edx, dword [esp + 0x90]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 0x10]
add ecx, dword [edx]
mov dword [ecx + 8], eax
jmp 0x4d40f2
lea eax, [edi + 0x40]
add edi, 0x3c
jmp 0x4d4da6
xor eax, eax
xor edx, edx
div dword [edi + 0x38]
mov eax, dword [esp + 0x1c]
lea edi, [eax + edx*8]
lea eax, [eax + edx*8]
add eax, 4
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 8]
mov edi, dword [edi]
mov ecx, 0x53e0d4
test edi, edi
je 0x4d4e05
mov eax, dword [eax]
dec edi
mov dword [esp + 0x1c], eax
mov ebx, dword [eax + 0xc]
xor edx, edx
jmp 0x4d4dd0
movzx eax, byte [eax + 0x52a853]
cmp al, byte [ecx + 0x52a853]
jne 0x4d4de2
inc edx
movzx eax, byte [ebx + edx]
movzx ecx, byte [esi + edx]
cmp al, cl
jne 0x4d4dc0
test eax, eax
jne 0x4d4dcf
jmp 0x4d4df9
test edi, edi
mov eax, dword [esp + 0x1c]
jne 0x4d4db1
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 8]
mov ecx, 0x53e0d4
jmp 0x4d4e05
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 8]
cmp dword [ecx + 8], 0
jne 0x4d3f11
jmp 0x4d4bb6
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
jmp 0x4d4e22
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x60], 0
mov edi, dword [ebp + 0xc]
je 0x4d4ec1
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4e75
lea ecx, [eax + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov edx, dword [esp + 0x60]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d4e8e
mov ecx, dword [esp + 4]
mov edx, 8
push 0
push dword [esp + 0x64]
push 0
call fcn.004747e0
add esp, 0xc
mov eax, dword [esp + 4]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x4d4ebe
lea ecx, [eax - 1]
mov edx, dword [esp + 0xb4]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [esp + 4]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
cmp dword [esp + 0x68], 0
je 0x4d50c9
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4f66
lea ecx, [eax + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x10
mov edx, dword [esp + 0x3c]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
cmp dword [esp + 0x24], 0
je 0x4d4f88
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4fd5
lea ecx, [eax + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov edx, dword [esp + 0x40]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d5098
mov ecx, dword [esp + 4]
mov edx, 0x10
push 0
push dword [esp + 0x60]
push dword [esp + 0x44]
call fcn.004747e0
add esp, 0xc
cmp dword [esp + 0x24], 0
jne 0x4d4f1a
cmp dword [ebp + 0x18], 0
je 0x4d502a
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d4ff3
lea ecx, [eax + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x35
mov edx, dword [ebp + 0x14]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x40]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [ebp + 0x18]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d500e
mov ecx, dword [esp + 4]
mov edx, 8
push 0
push dword [esp + 0x44]
push 0
call fcn.004747e0
add esp, 0xc
jmp 0x4d5098
mov ecx, dword [esp + 4]
mov edx, 0x35
push dword [ebp + 0x18]
push dword [esp + 0x44]
push dword [ebp + 0x14]
call fcn.004747e0
add esp, 0xc
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x6c]
test eax, eax
jle 0x4d502a
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x90
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4d506a
lea ecx, [eax + 1]
mov edx, dword [esp + 4]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x1e
mov dword [ecx + eax*4 + 4], edi
mov edx, dword [esp + 0x40]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [ebp + 0x14]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4d5083
mov ecx, dword [esp + 4]
mov edx, 0x1e
push dword [ebp + 0x14]
push dword [esp + 0x44]
push edi
call fcn.004747e0
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, 2
push dword [esp + 0x14]
call fcn.004d5490
add esp, 4
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xc]
not edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x4d50bc
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
jmp 0x4d50c9
mov edx, dword [esp + 4]
push edi
call fcn.0049d4a0
add esp, 4
mov esi, dword [ebp + 0x28]
mov edi, dword [esp + 0x14]
test byte [edi + 0x1c], 0x80
jne 0x4d5149
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + eax*4]
mov esi, dword [ebp + 0x14]
inc esi
movsx edi, word [edi + 0x24]
mov ecx, dword [esp + 4]
mov ebx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], ebx
jle 0x4d511d
lea edx, [ebx + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4], 0x61
mov dword [edx + ecx*4 + 4], esi
mov dword [edx + ecx*4 + 8], edi
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4d512d
mov edx, 0x61
push eax
push edi
push esi
call fcn.004747e0
add esp, 0xc
cmp byte [esp + 0x74], 0
mov edx, dword [esp + 0x14]
mov esi, dword [ebp + 0x28]
jne 0x4d5149
mov ecx, dword [esp + 4]
push 0
call fcn.0049f530
add esp, 4
mov eax, dword [esp + 0x6c]
mov dword [esi], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esp + 4]
jmp 0x4d362c