Function at 0x51a15c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x18
push 0
push 0
dec ecx
jne 0x51a164
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov esi, 0x5946d8
xor eax, eax
push ebp
push 0x51af6a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [esi], 0
jne 0x51aea2
mov ecx, dword [0x594144]
mov dl, 1
mov eax, dword [0x478ce8]
call fcn.0047b784
mov dword [esi], eax
mov dl, 3
mov eax, dword [esi]
call fcn.0047cf48
cmp word [0x5944d4], 0
jbe 0x51a1d4
lea edx, [ebp - 0xc]
movzx eax, word [0x5944d4]
add eax, 0x1b5
call fcn.0040ba78
mov edx, dword [ebp - 0xc]
mov eax, dword [esi]
call fcn.00463224
jmp 0x51a1e0
mov edx, 0x51af80
mov eax, dword [esi]
call fcn.00463224
mov eax, dword [esi]
mov edx, dword [ebp - 4]
mov dword [eax + 0x29c], edx
mov dword [eax + 0x298], 0x525ee4
mov edx, 0x142
mov eax, dword [esi]
call fcn.0047c598
mov eax, dword [esi]
call fcn.00462c3c
mov edx, eax
add edx, 0x14
add edx, 0x3c
sub edx, 0xe
mov eax, dword [esi]
call fcn.0047c598
mov edx, 0x185
mov eax, dword [esi]
call fcn.0047c568
mov eax, dword [esi]
mov edx, dword [ebp - 4]
mov dword [eax + 0x1e4], edx
mov dword [eax + 0x1e0], 0x5288a8
mov eax, dword [esi]
mov byte [eax + 0x22d], 1
mov eax, dword [0x594144]
mov ebx, dword [eax + 0x48]
mov eax, dword [esi]
sub ebx, dword [eax + 0x48]
sar ebx, 1
jns 0x51a258
adc ebx, 0
mov eax, dword [0x594144]
add ebx, dword [eax + 0x40]
mov eax, dword [0x594144]
mov edi, dword [eax + 0x4c]
mov eax, dword [esi]
sub edi, dword [eax + 0x4c]
sar edi, 1
jns 0x51a274
adc edi, 0
mov eax, dword [0x594144]
add edi, dword [eax + 0x44]
test ebx, ebx
jge 0x51a282
xor ebx, ebx
test edi, edi
jge 0x51a288
xor edi, edi
mov eax, dword [0x590754]
mov eax, dword [eax]
call fcn.00480b6c
mov edx, dword [esi]
mov edx, dword [edx + 0x48]
add edx, ebx
cmp eax, edx
jge 0x51a2b2
mov eax, dword [0x590754]
mov eax, dword [eax]
call fcn.00480b6c
mov ebx, eax
mov eax, dword [esi]
sub ebx, dword [eax + 0x48]
mov eax, dword [0x590754]
mov eax, dword [eax]
call fcn.00480b60
mov edx, dword [esi]
mov edx, dword [edx + 0x4c]
add edx, edi
cmp eax, edx
jge 0x51a2dc
mov eax, dword [0x590754]
mov eax, dword [eax]
call fcn.00480b60
mov edi, eax
mov eax, dword [esi]
sub edi, dword [eax + 0x4c]
mov edx, ebx
mov eax, dword [esi]
call fcn.0046293c
mov edx, edi
mov eax, dword [esi]
call fcn.00462960
push 0x13
push 1
push 1
push 1
push 1
push 0xffffffffffffffff
mov eax, dword [esi]
call fcn.00469a3c
push eax
call sub.user32.dll_SetWindowPos
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x439aec]
call fcn.0043b000
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x21
mov eax, ebx
call fcn.0046293c
mov edx, 0x10
mov eax, ebx
call fcn.00462960
mov edx, 0x20
mov eax, ebx
call fcn.00462988
mov edx, 0x20
mov eax, ebx
call fcn.004629ac
mov dl, 1
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [0x59051c]
mov eax, dword [eax]
mov eax, dword [eax + 0x98]
call fcn.00430b8c
push eax
mov eax, dword [ebx + 0x168]
call fcn.0042c7f8
pop edx
call fcn.00430e20
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x452d70]
call fcn.004582b4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x49
mov eax, ebx
call fcn.0046293c
mov edx, 0x10
mov eax, ebx
call fcn.00462960
mov edx, 0x105
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
xor edx, edx
mov eax, ebx
call fcn.00463224
lea edx, [ebp - 0x10]
mov eax, ebx
call fcn.004631f4
mov edx, dword [ebp - 0x10]
mov eax, ebx
call fcn.00463224
push 0x51afa0
lea edx, [ebp - 0x18]
mov eax, ebx
call fcn.004631f4
push dword [ebp - 0x18]
push 0
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00405358
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00463224
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.004631f4
push dword [ebp - 0x20]
push 0x51afb0
push 0x51afbc
push 0x51afd0
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00405358
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.00463224
lea edx, [ebp - 0x28]
mov eax, ebx
call fcn.004631f4
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
mov edx, 0x51afdc
call fcn.004052e4
mov edx, dword [ebp - 0x24]
mov eax, ebx
call fcn.00463224
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x452d70]
call fcn.004582b4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x49
mov eax, ebx
call fcn.0046293c
mov edx, 0x20
mov eax, ebx
call fcn.00462960
mov edx, 0x105
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
push 0x51aff8
lea eax, [ebp - 0x30]
push eax
mov eax, 0x51afbc
mov ecx, 4
mov edx, 7
call fcn.004054f8
push dword [ebp - 0x30]
push 0x51b014
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00405358
mov edx, dword [ebp - 0x2c]
mov eax, ebx
call fcn.00463224
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x4ecc94]
call fcn.004ed3c4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x72
mov eax, ebx
call fcn.0046293c
mov edx, 0x36
mov eax, ebx
call fcn.00462960
mov edx, 0xb3
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
lea eax, [ebx + 0x1a8]
mov edx, 0x51b030
call fcn.0040502c
mov ecx, dword [ebx + 0x1a8]
lea eax, [ebp - 0x34]
mov edx, 0x51b04c
call fcn.004052e4
mov edx, dword [ebp - 0x34]
mov eax, ebx
call fcn.00463224
cmp word [0x5944d4], 0x7d0
je 0x51a5ab
cmp word [0x5944d4], 0
jne 0x51a5bb
lea eax, [ebx + 0x1a8]
mov edx, 0x51b05c
call fcn.004052a0
mov dl, 3
mov eax, ebx
call fcn.004ed59c
lea eax, [ebx + 0x80]
mov edx, 0x51b074
call fcn.0040502c
mov dl, 1
mov eax, ebx
call fcn.00463344
mov eax, dword [ebx + 0x68]
mov edx, 0xff0000
call fcn.004293f8
mov dx, 0xffeb
mov eax, ebx
call fcn.00463400
mov edi, dword [ebx + 0x68]
mov eax, edi
call fcn.004296b8
mov dl, byte [0x51b088]
not edx
and dl, al
mov eax, edi
call fcn.004296c4
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x4ecc94]
call fcn.004ed3c4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x2d
mov eax, ebx
call fcn.0046293c
mov edx, 0x46
mov eax, ebx
call fcn.00462960
mov edx, 0x13a
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
lea eax, [ebp - 0x38]
push eax
call fcn.0040d7e4
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x3c]
mov eax, 0x51b094
call fcn.0040e598
mov eax, dword [ebp - 0x3c]
mov ecx, 4
mov edx, 7
call fcn.004054f8
mov eax, dword [ebp - 0x38]
mov edx, 0x51b0a8
call fcn.004053e4
jne 0x51a6bb
lea eax, [ebx + 0x1a8]
mov edx, 0x51b0b8
call fcn.0040502c
jmp 0x51a6cb
lea eax, [ebx + 0x1a8]
mov edx, 0x51b0ec
call fcn.0040502c
mov ecx, dword [ebx + 0x1a8]
lea eax, [ebp - 0x40]
mov edx, 0x51b04c
call fcn.004052e4
mov edx, dword [ebp - 0x40]
mov eax, ebx
call fcn.00463224
mov dl, 3
mov eax, ebx
call fcn.004ed59c
lea eax, [ebx + 0x80]
mov edx, 0x51b11c
call fcn.0040502c
mov dl, 1
mov eax, ebx
call fcn.00463344
mov eax, dword [ebx + 0x68]
mov edx, 0xff0000
call fcn.004293f8
mov dx, 0xffeb
mov eax, ebx
call fcn.00463400
mov edi, dword [ebx + 0x68]
mov eax, edi
call fcn.004296b8
mov dl, byte [0x51b088]
not edx
and dl, al
mov eax, edi
call fcn.004296c4
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x4ecc94]
call fcn.004ed3c4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x7a
mov eax, ebx
call fcn.0046293c
mov edx, 0x56
mov eax, ebx
call fcn.00462960
mov edx, 0xa3
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
lea eax, [ebx + 0x1a8]
mov edx, 0x51b134
call fcn.0040502c
mov edx, dword [ebx + 0x1a8]
mov eax, ebx
call fcn.00463224
push dword [ebx + 0x1a8]
push 0x51b14c
lea edx, [ebp - 0x44]
mov eax, dword [0x594144]
call fcn.004631f4
push dword [ebp - 0x44]
lea eax, [ebx + 0x1a8]
mov edx, 3
call fcn.00405358
mov dl, 5
mov eax, ebx
call fcn.004ed59c
lea eax, [ebx + 0x80]
mov edx, 0x51b160
call fcn.0040502c
mov dl, 1
mov eax, ebx
call fcn.00463344
mov edx, 0xff0000
mov eax, dword [ebx + 0x68]
call fcn.004293f8
mov dx, 0xffeb
mov eax, ebx
call fcn.00463400
mov edi, dword [ebx + 0x68]
mov eax, edi
call fcn.004296b8
mov dl, byte [0x51b088]
not edx
and dl, al
mov eax, edi
call fcn.004296c4
lea eax, [ebp - 8]
call fcn.00404fd8
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x452d70]
call fcn.004582b4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x26
mov eax, ebx
call fcn.0046293c
mov edx, 0x6a
mov eax, ebx
call fcn.00462960
mov edx, 0x14b
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
lea edx, [ebp - 0x48]
mov eax, ebx
call fcn.004631f4
mov eax, dword [ebp - 0x48]
call fcn.00405298
mov edi, eax
cmp edi, 1
jl 0x51a8f5
lea edx, [ebp - 0x50]
mov eax, ebx
call fcn.004631f4
mov eax, dword [ebp - 0x50]
mov dl, byte [eax + edi - 1]
lea eax, [ebp - 0x4c]
call fcn.004051c0
mov edx, dword [ebp - 0x4c]
lea eax, [ebp - 8]
mov ecx, dword [ebp - 8]
call fcn.004052e4
lea eax, [ebp - 8]
call fcn.004054f0
mov edx, dword [ebp - 8]
movzx edx, byte [edx]
lea ecx, [edi + 0x75]
xor edx, ecx
add edx, 7
mov byte [eax], dl
dec edi
test edi, edi
jne 0x51a8b1
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00463224
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x452d70]
call fcn.004582b4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x41
mov eax, ebx
call fcn.0046293c
mov edx, 0x7f
mov eax, ebx
call fcn.00462960
mov edx, 0x55
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov edx, 0x51b174
mov eax, ebx
call fcn.00463224
lea eax, [ebp - 8]
call fcn.00404fd8
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x4540e0]
call fcn.004596b0
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x41
mov eax, ebx
call fcn.0046293c
mov edx, 0x8f
mov eax, ebx
call fcn.00462960
mov edx, 0x55
mov eax, ebx
call fcn.00462988
mov edx, 0x27
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.0045995c
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x5c]
xor edx, edx
mov eax, ebx
call fcn.004589d8
mov dl, 1
mov eax, ebx
call fcn.00458b60
push 0x51b188
lea edx, [ebp - 0x58]
mov eax, 0x23
call fcn.0040b57c
push dword [ebp - 0x58]
lea edx, [ebp - 0x5c]
mov eax, 0x1f
call fcn.0040b57c
push dword [ebp - 0x5c]
lea edx, [ebp - 0x60]
mov eax, 0xe
call fcn.0040b57c
push dword [ebp - 0x60]
lea edx, [ebp - 0x64]
mov eax, 0x28
call fcn.0040b57c
push dword [ebp - 0x64]
lea edx, [ebp - 0x68]
mov eax, 0x52
call fcn.0040b57c
push dword [ebp - 0x68]
lea edx, [ebp - 0x6c]
mov eax, 0x4a
call fcn.0040b57c
push dword [ebp - 0x6c]
push 0x51b194
push 0x51b1a0
lea edx, [ebp - 0x70]
mov eax, 0xe
call fcn.0040b57c
push dword [ebp - 0x70]
lea edx, [ebp - 0x74]
mov eax, 0x3b
call fcn.0040b57c
push dword [ebp - 0x74]
lea edx, [ebp - 0x78]
mov eax, 0x1f
call fcn.0040b57c
push dword [ebp - 0x78]
lea edx, [ebp - 0x7c]
mov eax, 0x4d
call fcn.0040b57c
push dword [ebp - 0x7c]
lea edx, [ebp - 0x80]
mov eax, 0x61
call fcn.0040b57c
push dword [ebp - 0x80]
lea edx, [ebp - 0x84]
mov eax, 0x12
call fcn.0040b57c
push dword [ebp - 0x84]
push 0x51b194
push 0x51b1ac
lea edx, [ebp - 0x88]
mov eax, 0x54
call fcn.0040b57c
push dword [ebp - 0x88]
lea edx, [ebp - 0x8c]
mov eax, 0x5e
call fcn.0040b57c
push dword [ebp - 0x8c]
lea edx, [ebp - 0x90]
mov eax, 0x40
call fcn.0040b57c
push dword [ebp - 0x90]
lea edx, [ebp - 0x94]
mov eax, 0x2d
call fcn.0040b57c
push dword [ebp - 0x94]
lea edx, [ebp - 0x98]
mov eax, 0xd
call fcn.0040b57c
push dword [ebp - 0x98]
lea edx, [ebp - 0x9c]
mov eax, 0x24
call fcn.0040b57c
push dword [ebp - 0x9c]
lea eax, [ebp - 0x54]
mov edx, 0x17
call fcn.00405358
mov edx, dword [ebp - 0x54]
mov eax, ebx
call fcn.00463224
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x452d70]
call fcn.004582b4
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0xdc
mov eax, ebx
call fcn.0046293c
mov edx, 0x7f
mov eax, ebx
call fcn.00462960
mov edx, 0x64
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.004586b8
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov edx, 0x51b1b8
mov eax, ebx
call fcn.00463224
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x4540e0]
call fcn.004596b0
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0xdc
mov eax, ebx
call fcn.0046293c
mov edx, 0x8f
mov eax, ebx
call fcn.00462960
mov edx, 0x64
mov eax, ebx
call fcn.00462988
mov edx, 0xd
mov eax, ebx
call fcn.004629ac
mov dl, 2
mov eax, ebx
call fcn.0045995c
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x5c]
xor edx, edx
mov eax, ebx
call fcn.004589d8
mov dl, 1
mov eax, ebx
call fcn.00458b60
lea edx, [ebp - 0xa4]
mov eax, 4
call fcn.0040b57c
push dword [ebp - 0xa4]
lea edx, [ebp - 0xa8]
mov eax, 0x64
call fcn.0040b57c
push dword [ebp - 0xa8]
lea edx, [ebp - 0xac]
mov eax, 0x72
call fcn.0040b57c
push dword [ebp - 0xac]
lea edx, [ebp - 0xb0]
mov eax, 0x16
call fcn.0040b57c
push dword [ebp - 0xb0]
lea edx, [ebp - 0xb4]
mov eax, 5
call fcn.0040b57c
push dword [ebp - 0xb4]
lea edx, [ebp - 0xb8]
mov eax, 0x32
call fcn.0040b57c
push dword [ebp - 0xb8]
lea edx, [ebp - 0xbc]
mov eax, 0x28
call fcn.0040b57c
push dword [ebp - 0xbc]
lea edx, [ebp - 0xc0]
mov eax, 5
call fcn.0040b57c
push dword [ebp - 0xc0]
lea eax, [ebp - 0xa0]
mov edx, 8
call fcn.00405358
mov edx, dword [ebp - 0xa0]
mov eax, ebx
call fcn.00463224
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x4540e0]
call fcn.004596b0
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x220]
mov edx, 0x51b1d0
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 6
mov eax, ebx
call fcn.0046293c
mov edx, 0xf8
mov eax, ebx
call fcn.00462960
mov edx, dword [ebx + 0x44]
add edx, 0x14
mov eax, ebx
call fcn.00462960
mov edx, 0x179
mov eax, ebx
call fcn.00462988
mov edx, 0x70
mov eax, ebx
call fcn.004629ac
xor edx, edx
mov eax, ebx
call fcn.00469c70
mov edx, 0xff000018
mov eax, ebx
call fcn.00463394
mov dl, 1
mov eax, ebx
call fcn.00458b60
mov dl, 2
mov eax, ebx
call fcn.00459980
xor edx, edx
mov eax, ebx
call fcn.00469c58
mov eax, dword [ebx + 0x68]
mov edx, 0xfffffff8
call fcn.004295e0
mov eax, dword [ebx + 0x220]
mov edx, 0x51b1ec
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov ecx, dword [esi]
mov dl, 1
mov eax, dword [0x4540e0]
call fcn.004596b0
mov ebx, eax
mov edx, dword [esi]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x220]
mov edx, 0x51b1d0
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 6
mov eax, ebx
call fcn.0046293c
mov edx, 0xaa
mov eax, ebx
call fcn.00462960
mov edx, dword [ebx + 0x44]
add edx, 0x14
mov eax, ebx
call fcn.00462960
mov edx, 0x179
mov eax, ebx
call fcn.00462988
mov edx, 0x47
mov eax, ebx
call fcn.004629ac
xor edx, edx
mov eax, ebx
call fcn.00469c70
mov edx, 0xff000018
mov eax, ebx
call fcn.00463394
mov eax, dword [ebx + 0x68]
mov edx, 0xff
call fcn.004293f8
mov dl, 1
mov eax, ebx
call fcn.00458b60
mov dl, 1
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, ebx
call fcn.00459980
xor edx, edx
mov eax, ebx
call fcn.00469c58
mov eax, dword [ebx + 0x68]
mov edx, 0xfffffff5
call fcn.004295e0
cmp word [0x5944d4], 0x7d0
je 0x51ae79
cmp word [0x5944d4], 0
jne 0x51ae8b
mov eax, dword [ebx + 0x220]
mov edx, 0x51b7f4
mov ecx, dword [eax]
call dword [ecx + 0x2c]
jmp 0x51ae9b
mov eax, dword [ebx + 0x220]
mov edx, 0x51b908
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [esi]
call fcn.004a90b8
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x51aec1
mov dl, 1
mov eax, dword [0x594144]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, dword [esi]
call fcn.0047c5c8
jmp 0x51aee8
xor edx, edx
mov eax, dword [0x594144]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov dl, 1
mov eax, dword [esi]
call fcn.0047c5c8
mov dl, 1
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51af71
lea eax, [ebp - 0xc0]
mov edx, 0x1c
call fcn.00404ffc
lea eax, [ebp - 0x50]
call fcn.00404fd8
lea eax, [ebp - 0x4c]
call fcn.00404fd8
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.00404ffc
lea eax, [ebp - 0x40]
mov edx, 6
call fcn.00404ffc
lea eax, [ebp - 0x28]
call fcn.00404fd8
lea eax, [ebp - 0x24]
call fcn.00404fd8
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404ffc
lea eax, [ebp - 0x14]
call fcn.00404fd8
lea eax, [ebp - 0x10]
call fcn.00404fd8
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404ffc
ret