Function at 0x551928
Capabilities:
Check for peb ntglobalflag flag
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
test dl, dl
je 0x551948
add esp, 0xfffffff0
call fcn.00403ddc
mov dword [ebp - 8], ecx
mov byte [ebp - 1], dl
mov ebx, eax
mov esi, 0x5d1c78
mov edi, 0x5d1c6c
xor eax, eax
push ebp
push 0x552a8a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov dword [ebx + 0x30], eax
mov byte [ebx + 0x1f1], 1
mov dl, 1
mov eax, dword [0x41eb20]
call fcn.00403a48
mov dword [ebx + 0x78], eax
mov eax, dword [ebx + 0x78]
mov byte [eax + 0x1d], 0
mov eax, dword [ebx + 0x78]
mov dl, 1
call fcn.00423b84
xor eax, eax
mov dword [ebx + 0x138], eax
mov dword [ebx + 0x13c], eax
xor eax, eax
mov dword [ebx + 0xa8], eax
mov dword [ebx + 0xac], eax
mov byte [ebx + 0x1f0], 0
push 0x2d
call sub.user32.dll_GetSystemMetrics
push eax
push 0x20
call sub.user32.dll_GetSystemMetrics
pop edx
add edx, eax
mov dword [0x5d1c80], edx
push 2
call sub.user32.dll_GetSystemMetrics
mov dword [0x5d1c84], eax
mov dword [ebx + 0x1ec], 0xffffffff
mov ecx, ebx
mov dl, 1
mov eax, dword [0x540560]
call fcn.00546f8c
mov dword [ebx + 0x1d4], eax
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x4d5460]
call fcn.004dcaac
mov dword [0x5d1c60], eax
mov edx, dword [ebx + 0x30]
mov eax, dword [0x5d1c60]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [0x5d1c60]
call fcn.004aaf80
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x68]
mov edx, 0x552abc
call fcn.0048133c
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x68]
mov edx, 8
call fcn.004813b4
mov edx, 0x13
mov eax, dword [0x5d1c60]
call fcn.004ab24c
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
call fcn.004dca58
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
xor edx, edx
call fcn.004dca64
mov dl, 2
call fcn.004dc990
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
call fcn.004dca58
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
mov edx, 1
call fcn.004dca64
mov dl, 2
call fcn.004dc990
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x20c]
mov edx, 0x552ad4
call fcn.004823e0
add eax, 9
push eax
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
mov edx, 1
call fcn.004dca64
pop edx
call fcn.004dc9e8
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
call fcn.004dca58
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
mov edx, 2
call fcn.004dca64
mov dl, 2
call fcn.004dc990
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x20c]
mov edx, 0x552ae8
call fcn.004823e0
add eax, 0xa
push eax
mov eax, dword [0x5d1c60]
mov eax, dword [eax + 0x208]
mov edx, 2
call fcn.004dca64
pop edx
call fcn.004dc9e8
mov ecx, dword [0x5d1c60]
mov dl, 1
mov eax, dword [0x5409e4]
call fcn.00548298
mov dword [ebx + 0x1cc], eax
mov eax, dword [ebx + 0x1cc]
mov eax, dword [eax + 0x30]
call fcn.00548068
mov ecx, dword [ebx + 0x1d4]
mov dl, 1
mov eax, dword [0x540e5c]
call fcn.00548c2c
mov dword [0x5d1c64], eax
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x4a8134]
call fcn.004b8c20
mov dword [0x5d1c90], eax
mov edx, 0xe
mov eax, dword [0x5d1c90]
call fcn.004b8f38
mov edx, 0xe
mov eax, dword [0x5d1c90]
call fcn.004b8ef4
push 0xffffff
mov ecx, 0x552afc
xor edx, edx
mov eax, dword [0x5d1c90]
call fcn.004b9d58
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x4a8134]
call fcn.004b8c20
mov dword [0x5d1c94], eax
mov edx, 0xe
mov eax, dword [0x5d1c94]
call fcn.004b8f38
mov edx, 0xe
mov eax, dword [0x5d1c94]
call fcn.004b8ef4
push 0xffffff
mov ecx, 0x552b0c
xor edx, edx
mov eax, dword [0x5d1c94]
call fcn.004b9d58
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x4d85f8]
call fcn.004e8bb4
mov dword [0x5d1c88], eax
mov edx, dword [ebx + 0x30]
mov eax, dword [0x5d1c88]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [0x5d1c88]
call fcn.004aaf80
mov dl, byte [0x552b1c]
mov eax, dword [0x5d1c88]
call fcn.004aadc0
mov edx, 0x14
mov eax, dword [0x5d1c88]
call fcn.004e9364
mov edx, 0x14
mov eax, dword [0x5d1c88]
call fcn.004e9350
mov edx, 2
mov eax, dword [0x5d1c88]
call fcn.004ab1dc
mov edx, 0x17
mov eax, dword [0x5d1c88]
call fcn.004ab228
mov edx, 0x16
mov eax, dword [0x5d1c88]
call fcn.004ab24c
mov edx, dword [0x5d1c90]
mov eax, dword [0x5d1c88]
call fcn.004ea018
mov edx, dword [0x5d1c94]
mov eax, dword [0x5d1c88]
call fcn.004ea0bc
mov dl, byte [0x552b1c]
mov eax, dword [0x5d1c88]
call fcn.004cdda0
mov ecx, dword [0x5d1c88]
mov dl, 1
mov eax, dword [0x4d7d18]
call fcn.004e7e70
mov dword [0x5d1c8c], eax
mov edx, dword [0x5d1c88]
mov eax, dword [0x5d1c8c]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [0x5d1c8c]
call fcn.004aaf80
mov dl, byte [0x552b1c]
mov eax, dword [0x5d1c8c]
call fcn.004aadc0
mov edx, 1
mov eax, dword [0x5d1c8c]
call fcn.004ab1dc
mov edx, 1
mov eax, dword [0x5d1c8c]
call fcn.004ab200
mov edx, 0x14
mov eax, dword [0x5d1c8c]
call fcn.004ab228
mov edx, 0x14
mov eax, dword [0x5d1c8c]
call fcn.004ab24c
mov dl, 1
mov eax, dword [0x5d1c8c]
call fcn.004e88bc
xor edx, edx
mov eax, dword [0x5d1c8c]
call fcn.004e8758
mov eax, dword [0x5d1c8c]
add eax, 0x80
mov edx, dword [0x5d1c8c]
movzx edx, byte [edx + 0x16a]
mov edx, dword [edx*4 + 0x5bb4b0]
call fcn.004049bc
mov dl, 1
mov eax, dword [0x5d1c8c]
call fcn.004abbe4
xor edx, edx
mov eax, dword [0x5d1c8c]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [0x5d1c8c]
mov dword [eax + 0x124], ebx
mov dword [eax + 0x120], fcn.0054fef8
mov dl, 1
mov eax, dword [0x54080c]
call fcn.00547b98
mov dword [ebx + 0x198], eax
mov eax, dword [ebx + 0x198]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], fcn.0054fa38
mov dl, 1
mov eax, dword [0x41eb20]
call fcn.00403a48
mov dword [ebx + 0x19c], eax
mov dl, 1
mov eax, dword [0x41eb20]
call fcn.00403a48
mov dword [ebx + 0x1a0], eax
mov eax, dword [ebx + 0x1a0]
xor edx, edx
call fcn.00423c34
mov dl, 1
mov eax, dword [0x41eb20]
call fcn.00403a48
mov dword [ebx + 0x1a4], eax
mov eax, dword [ebx + 0x1a4]
mov dl, 1
call fcn.00423b84
mov eax, dword [ebx + 0x1a4]
mov byte [eax + 0x1d], 0
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x48f780]
call fcn.00495afc
mov dword [0x5d1c68], eax
mov edx, dword [ebx + 0x30]
mov eax, dword [0x5d1c68]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [0x5d1c68]
call fcn.004aaf80
mov dl, byte [0x552b1c]
mov eax, dword [0x5d1c68]
call fcn.004aadc0
mov eax, dword [0x5d1c68]
mov eax, dword [eax + 0x68]
mov edx, 8
call fcn.004813b4
mov eax, dword [0x5d1c68]
mov byte [eax + 0x269], 1
mov dl, 3
mov eax, dword [0x5d1c68]
mov ecx, dword [eax]
call dword [ecx + 0x114]
mov eax, dword [0x5d1c68]
add eax, 0x80
mov edx, 0x552b28
call fcn.004049bc
mov dl, 1
mov eax, dword [0x5d1c68]
call fcn.004abbe4
mov eax, dword [0x5d1c68]
mov dword [eax + 0x21c], ebx
mov dword [eax + 0x218], 0x54f7c8
mov eax, dword [0x5d1c68]
mov dword [eax + 0x1c4], ebx
mov dword [eax + 0x1c0], 0x54f7c0
mov eax, dword [0x5d1c68]
mov dword [eax + 0x284], ebx
mov dword [eax + 0x280], 0x54fdc0
mov eax, dword [0x5d1c68]
mov byte [eax + 0x1f8], 1
mov dl, 1
mov eax, dword [0x5d1c68]
call fcn.004ab9b4
xor edx, edx
mov eax, dword [0x5d1c68]
mov ecx, dword [eax]
call dword [ecx + 0x64]
push 0
push 1
mov al, byte [0x552b40]
push eax
mov al, byte [0x552b44]
push eax
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x537ebc]
call fcn.0053ab78
mov dword [edi], eax
mov edx, dword [ebx + 0x30]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [edi]
call fcn.004aaf80
mov dl, byte [0x552b1c]
mov eax, dword [edi]
call fcn.004aadc0
mov eax, dword [edi]
mov eax, dword [eax + 0x68]
mov edx, 8
call fcn.004813b4
mov dl, 1
mov eax, dword [edi]
call fcn.0053a8d8
mov eax, dword [edi]
mov word [eax + 0x7a], 1
mov dl, 1
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov eax, dword [ebx + 0x1d4]
mov eax, dword [eax + 0x48]
mov edx, dword [eax + 8]
mov eax, dword [edi]
call fcn.004aba4c
mov eax, dword [edi]
mov dword [eax + 0x2ac], ebx
mov dword [eax + 0x2a8], fcn.0054ea74
mov eax, dword [ebx + 0x1d4]
mov edx, dword [edi]
mov dword [edx + 0x134], eax
mov dword [edx + 0x130], 0x546bf0
mov eax, dword [edi]
mov dword [eax + 0xf4], ebx
mov dword [eax + 0xf0], 0x54e514
mov eax, dword [edi]
mov dword [eax + 0xec], ebx
mov dword [eax + 0xe8], 0x54e60c
mov eax, dword [edi]
mov dword [eax + 0x47c], ebx
mov dword [eax + 0x478], 0x54e8a0
mov eax, dword [edi]
mov dword [eax + 0x2b4], ebx
mov dword [eax + 0x2b0], fcn.0054e9c0
mov eax, dword [edi]
mov dword [eax + 0x2fc], ebx
mov dword [eax + 0x2f8], 0x54ea7c
mov eax, dword [edi]
mov dword [eax + 0x304], ebx
mov dword [eax + 0x300], 0x54ea8c
mov eax, dword [edi]
mov dword [eax + 0x424], ebx
mov dword [eax + 0x420], 0x54ebe4
mov eax, dword [edi]
mov dword [eax + 0x1dc], ebx
mov dword [eax + 0x1d8], 0x54ec6c
mov eax, dword [edi]
mov byte [eax + 0x1f8], 1
mov dl, 1
mov eax, dword [edi]
call fcn.004ab9b4
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x49aa9c]
call fcn.0049e000
mov dword [0x5d1c70], eax
mov edx, dword [ebx + 0x30]
mov eax, dword [0x5d1c70]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [0x5d1c70]
call fcn.004aaf80
mov dl, byte [0x552b1c]
mov eax, dword [0x5d1c70]
call fcn.004aadc0
mov dx, 0xfff1
mov eax, dword [0x5d1c70]
call fcn.004abca0
mov edx, 4
mov eax, dword [0x5d1c70]
call fcn.004ab24c
xor edx, edx
mov eax, dword [0x5d1c70]
call fcn.0049e40c
mov eax, dword [0x5d1c70]
mov dword [eax + 0xdc], ebx
mov dword [eax + 0xd8], 0x54ff78
mov dl, 1
mov eax, dword [0x5d1c70]
call fcn.004ab9b4
mov dl, 1
mov eax, dword [0x54080c]
call fcn.00547b98
mov dword [ebx + 0x190], eax
mov eax, dword [ebx + 0x190]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], 0x54d358
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x533dd0]
call fcn.00535754
mov dword [0x5d1c74], eax
mov edx, dword [ebx + 0x30]
mov eax, dword [0x5d1c74]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [0x5d1c74]
call fcn.004aaf80
mov dl, byte [0x552b1c]
mov eax, dword [0x5d1c74]
call fcn.004aadc0
mov eax, dword [0x5d1c74]
mov eax, dword [eax + 0x68]
mov edx, 8
call fcn.004813b4
mov eax, dword [0x5d1c74]
mov dword [eax + 0x21c], ebx
mov dword [eax + 0x218], 0x54f454
mov eax, dword [0x5d1c74]
mov byte [eax + 0x1f8], 1
mov dl, 1
mov eax, dword [0x5d1c74]
call fcn.004ab9b4
mov eax, dword [ebx + 0x1d4]
push eax
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x540660]
call fcn.005471c8
mov dword [esi], eax
mov edx, dword [ebx + 0x30]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, dword [esi]
call fcn.004aaf80
mov dl, byte [0x552b1c]
mov eax, dword [esi]
call fcn.004aadc0
mov eax, dword [esi]
mov eax, dword [eax + 0x68]
mov edx, 8
call fcn.004813b4
mov eax, dword [esi]
mov word [eax + 0x7a], 1
mov dl, 1
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x60]
xor edx, edx
mov eax, dword [esi]
call fcn.004e02c0
xor edx, edx
mov eax, dword [esi]
call fcn.004dfee8
mov dl, 1
mov eax, dword [esi]
call fcn.004e1d04
xor edx, edx
mov eax, dword [esi]
call fcn.004e002c
mov dl, byte [0x552b48]
mov eax, dword [esi]
call fcn.004e1d38
mov eax, dword [esi]
mov eax, dword [eax + 0x338]
mov eax, dword [eax + 0x58]
mov edx, dword [eax + 8]
mov eax, dword [esi]
call fcn.004aba4c
xor edx, edx
mov eax, dword [esi]
call fcn.004dff04
xor edx, edx
mov eax, dword [esi]
call fcn.004dffb8
xor edx, edx
mov eax, dword [esi]
call fcn.004dffd4
xor edx, edx
mov eax, dword [esi]
call fcn.004dfff0
mov dl, 1
mov eax, dword [esi]
call fcn.004dff20
mov eax, dword [esi]
mov dword [eax + 0x124], ebx
mov dword [eax + 0x120], 0x54f1dc
mov eax, dword [esi]
mov dword [eax + 0x2ac], ebx
mov dword [eax + 0x2a8], fcn.0054ea74
mov eax, dword [esi]
mov eax, dword [eax + 0x338]
mov edx, dword [esi]
mov dword [edx + 0x134], eax
mov dword [edx + 0x130], 0x546ed8
mov eax, dword [esi]
mov dword [eax + 0x2fc], ebx
mov dword [eax + 0x2f8], 0x54ea7c
mov eax, dword [esi]
mov dword [eax + 0x304], ebx
mov dword [eax + 0x300], 0x54f0bc
mov eax, dword [esi]
mov dword [eax + 0xf4], ebx
mov dword [eax + 0xf0], 0x54edb4
mov eax, dword [esi]
mov dword [eax + 0xec], ebx
mov dword [eax + 0xe8], 0x54ee0c
mov eax, dword [esi]
mov dword [eax + 0x34c], ebx
mov dword [eax + 0x348], 0x54ef5c
mov eax, dword [esi]
mov dword [eax + 0x12c], ebx
mov dword [eax + 0x128], 0x54f0b4
mov eax, dword [esi]
mov dword [eax + 0x354], ebx
mov dword [eax + 0x350], 0x54f270
mov eax, dword [edi]
mov edx, dword [esi]
mov dword [eax + 0x42c], edx
mov dword [eax + 0x428], 0x547994
mov dl, 1
mov eax, dword [esi]
call fcn.004ab9b4
push ebx
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x5410b4]
call fcn.0054b9b4
mov dword [ebx + 0x1c8], eax
mov ecx, ebx
mov dl, 1
mov eax, dword [0x541044]
call fcn.0054b734
mov dword [ebx + 0x1e8], eax
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x4a01c4]
call fcn.004a114c
mov esi, eax
mov dword [ebx + 0x180], esi
mov eax, dword [0x552b4c]
mov dword [esi + 0x5c], eax
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x4a04bc]
call fcn.004a114c
mov esi, eax
mov dword [ebx + 0x188], esi
mov dword [esi + 0x9c], ebx
mov dword [esi + 0x98], 0x5511a4
mov eax, dword [esi + 0x5c]
or eax, dword [0x552b50]
mov dword [esi + 0x5c], eax
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x54050c]
call fcn.00548f34
mov esi, eax
mov dword [ebx + 0x1e0], esi
push 1
push ebx
push 0x550b0c
push 0xffffffffffffffff
mov eax, esi
mov cl, 1
mov edx, 0x552b5c
call fcn.00548f98
push 0
push ebx
push 0x550b0c
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1e0]
mov cl, 1
mov edx, 0x552b68
call fcn.00548f98
push 0
push ebx
push 0x550b0c
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1e0]
mov cl, 1
mov edx, 0x552b78
call fcn.00548f98
push 1
push ebx
push 0x550b0c
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1e0]
mov cl, 1
mov edx, 0x552b88
call fcn.00548f98
push 1
push ebx
push 0x550b0c
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1e0]
mov cl, 1
mov edx, 0x552b98
call fcn.00548f98
push 1
push ebx
push 0x550b0c
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1e0]
mov cl, 1
mov edx, 0x552bac
call fcn.00548f98
xor eax, eax
mov dword [0x5d1c58], eax
lea ecx, [ebp - 0x10]
xor edx, edx
xor eax, eax
call fcn.0041f760
lea eax, [ebp - 0x10]
push eax
push 0x5d1c58
push 1
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x540288]
call fcn.00546148
mov dword [0x5d1c5c], eax
mov edx, 0xe6
mov eax, dword [0x5d1c5c]
call fcn.004ab1dc
mov eax, dword [0x5d1c5c]
mov dword [eax + 0x234], ebx
mov dword [eax + 0x230], 0x5518d4
mov eax, dword [0x5d1c5c]
mov dword [eax + 0xdc], ebx
mov dword [eax + 0xd8], 0x54e2c8
mov eax, dword [0x5d1c5c]
mov dword [eax + 0x244], ebx
mov dword [eax + 0x240], 0x54e354
mov eax, dword [0x5d1c5c]
mov dword [eax + 0xe4], ebx
mov dword [eax + 0xe0], 0x54e39c
mov eax, dword [0x5d1c58]
mov edx, dword [0x552bc0]
not edx
and edx, dword [eax + 0x50]
mov eax, dword [0x5d1c58]
call fcn.00544640
mov dl, 1
mov eax, dword [0x5d1c58]
call fcn.00544678
mov edx, 0x552bcc
mov eax, dword [0x5d1c58]
call fcn.005446ac
mov eax, dword [0x5d1c58]
mov dword [eax + 0x74], ebx
mov dword [eax + 0x70], 0x550324
mov eax, dword [0x5d1c58]
mov dword [eax + 0x64], ebx
mov dword [eax + 0x60], 0x54da60
mov eax, dword [0x5d1c58]
mov dword [eax + 0xbc], ebx
mov dword [eax + 0xb8], 0x5518dc
mov eax, dword [0x5d1c58]
mov dword [eax + 0x84], ebx
mov dword [eax + 0x80], 0x54f4c4
mov eax, dword [0x5d1c58]
mov dword [eax + 0x7c], ebx
mov dword [eax + 0x78], 0x54f518
xor edx, edx
mov eax, dword [0x5d1c58]
call fcn.0054473c
mov eax, dword [ebx + 0x1e0]
mov edx, dword [eax + 8]
mov eax, dword [0x5d1c58]
call fcn.00544884
mov eax, dword [0x552bd8]
mov dword [ebx + 0x97], eax
mov al, byte [0x552bdc]
mov byte [ebx + 0x9b], al
mov eax, dword [0x552be0]
mov dword [ebx + 0x9c], eax
mov al, byte [0x552be4]
mov byte [ebx + 0xa0], al
mov al, byte [0x552b1c]
mov byte [ebx + 0xa1], al
mov al, byte [0x552b1c]
mov byte [ebx + 0xa2], al
mov dword [ebx + 0x8c], 0xf0f0f0
mov dword [ebx + 0x7c], 2
mov eax, dword [ebx + 0x8c]
sub eax, 0x707070
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x84], 2
mov dword [ebx + 0x88], 3
mov byte [ebx + 0x94], 0
mov byte [ebx + 0x95], 1
mov byte [ebx + 0x96], 1
mov byte [ebx + 0x54], 0
lea eax, [ebx + 0x18c]
mov edx, 0x552bf0
call fcn.004049bc
mov dword [ebx + 0x58], 0xffffff
xor eax, eax
mov dword [ebx + 0x5c], eax
lea eax, [ebx + 0x70]
mov edx, 0x552c08
call fcn.004049bc
mov dword [ebx + 0x74], 0xa
mov al, byte [0x552c14]
mov byte [ebx + 0x184], al
lea ecx, [ebp - 0x14]
mov edx, 0x552c1c
xor eax, eax
call fcn.004eeae8
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x1e8]
add eax, 8
call fcn.004050f4
mov byte [ebx + 0x80], 0
mov eax, dword [0x5cc204]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
mov dword [ebx + 0x1a8], eax
mov word [ebx + 0x1b8], 0x40
xor eax, eax
mov dword [ebx + 0x1be], eax
xor eax, eax
mov dword [ebx + 0x1c2], eax
mov byte [ebx + 0x1c6], 0
mov byte [ebx + 0x1d0], 1
mov byte [ebx + 0x1d1], 1
mov byte [ebx + 0x1e4], 0
cmp byte [ebp + 8], 0
je 0x5526fa
mov eax, dword [edi]
call fcn.0053b378
lea eax, [ebp - 0x18]
call fcn.0040cd3c
mov edx, dword [ebp - 0x18]
mov eax, dword [edi]
call fcn.005398b8
mov ecx, dword [ebx + 0x30]
mov dl, 1
mov eax, dword [0x54050c]
call fcn.00548f34
mov esi, eax
mov dword [ebx + 0x1dc], esi
push 0
push 0
push 0
push 0xffffffffffffffff
mov eax, esi
xor ecx, ecx
mov edx, 0x552c2c
call fcn.00548f98
mov esi, 1
push 0
push ebx
push 0x550a04
push 0
lea edx, [ebp - 0x1c]
mov eax, esi
call fcn.0040bf0c
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x1dc]
mov cl, 1
call fcn.00548f98
inc esi
cmp esi, 0xa
jne 0x55272c
push 1
push 0
push 0
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
xor ecx, ecx
mov edx, 0x552c44
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552b5c
call fcn.00548f98
push 0
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552b68
call fcn.00548f98
push 0
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c50
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552b88
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552b98
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552bac
call fcn.00548f98
push 1
push 0
push 0
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c44
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c64
call fcn.00548f98
push 1
push 0
push 0
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c44
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c74
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c80
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c90
call fcn.00548f98
push 1
push 0
push 0
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552c44
call fcn.00548f98
push 1
push ebx
push 0x550a04
push 0xffffffffffffffff
mov eax, dword [ebx + 0x1dc]
mov cl, 1
mov edx, 0x552ca0
call fcn.00548f98
mov cl, 1
xor edx, edx
mov eax, ebx
call fcn.00553518
mov eax, ebx
call fcn.0054c8d0
mov edx, eax
mov eax, ebx
call fcn.0054d594
mov ecx, ebx
mov dl, 1
mov eax, dword [0x540fd0]
call fcn.0054a454
mov dword [ebx + 0x1d8], eax
mov eax, dword [ebx + 0x30]
mov edx, dword [eax + 0x138]
mov dword [ebx + 0x38], edx
mov edx, dword [eax + 0x13c]
mov dword [ebx + 0x3c], edx
mov eax, dword [ebx + 0x30]
mov dword [eax + 0x13c], ebx
mov dword [eax + 0x138], 0x5516e4
mov edx, dword [eax + 0xc0]
mov dword [ebx + 0x40], edx
mov edx, dword [eax + 0xc4]
mov dword [ebx + 0x44], edx
mov eax, dword [ebx + 0x30]
mov dword [eax + 0xc4], ebx
mov dword [eax + 0xc0], 0x54e140
mov edx, dword [eax + 0xf8]
mov dword [ebx + 0x48], edx
mov edx, dword [eax + 0xfc]
mov dword [ebx + 0x4c], edx
mov eax, dword [ebx + 0x30]
mov dword [eax + 0xfc], ebx
mov dword [eax + 0xf8], 0x54e1f8
xor eax, eax
mov dword [ebx + 0x168], eax
mov dword [ebx + 0x16c], eax
xor eax, eax
mov dword [ebx + 0x148], eax
mov dword [ebx + 0x14c], eax
xor eax, eax
mov dword [ebx + 0xf0], eax
mov dword [ebx + 0xf4], eax
xor eax, eax
mov dword [ebx + 0x110], eax
mov dword [ebx + 0x114], eax
xor eax, eax
mov dword [ebx + 0x178], eax
mov dword [ebx + 0x17c], eax
xor eax, eax
mov dword [ebx + 0x108], eax
mov dword [ebx + 0x10c], eax
xor eax, eax
mov dword [ebx + 0xe8], eax
mov dword [ebx + 0xec], eax
xor eax, eax
mov dword [ebx + 0xc0], eax
mov dword [ebx + 0xc4], eax
xor eax, eax
mov dword [ebx + 0xd0], eax
mov dword [ebx + 0xd4], eax
xor eax, eax
mov dword [ebx + 0xf8], eax
mov dword [ebx + 0xfc], eax
xor eax, eax
mov dword [ebx + 0x140], eax
mov dword [ebx + 0x144], eax
mov eax, dword [0x5d1c58]
call fcn.005444f0
mov eax, dword [eax + 0x230]
xor edx, edx
call fcn.00522388
mov eax, dword [0x5d1c58]
call fcn.005444f0
mov eax, dword [eax + 0x230]
xor edx, edx
call fcn.005223e0
mov ecx, dword [ebp - 8]
xor edx, edx
mov eax, ebx
call fcn.00429c48
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x552a91
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.0040498c
lea eax, [ebp - 0x14]
call fcn.004050b8
ret