Function at 0x5273b0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1b0
mov esi, esp
mov eax, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, eax
sub edi, 1
imul eax, edi
and eax, 1
push ebx
mov ebx, 0x788b2c23
xor ebx, 0x788b2c23
cmp eax, ebx
pop ebx
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
mov dword [esi + 0x1a4], ecx
jne 0x527410
jmp 0x528c98
mov eax, 4
mov dword [esi + 0x1a0], eax
call fcn.00437f10
mov ecx, 0x20000
mov eax, esp
mov ecx, eax
mov edx, dword [esi + 0x1a0]
call fcn.00529660
mov eax, edx
mov dword [esi + 0x198], ecx
call fcn.00437f10
mov ecx, 0x437288
mov eax, esp
call fcn.00529670
mov dword [esi + 0x194], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x1a0]
mov dword [esi + 0x190], eax
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x1a0]
mov dword [esi + 0x18c], eax
mov eax, 0x400
mov eax, ecx
call fcn.00437f10
mov eax, 0x437288
mov eax, esp
mov ecx, dword [esi + 0x1a0]
call fcn.00529680
mov eax, ecx
call fcn.00437f10
mov eax, 0x4374b0
mov eax, esp
mov ecx, dword [esi + 0x1a0]
mov dword [esi + 0x184], eax
mov eax, ecx
call fcn.00437f10
mov eax, 0x4374d4
mov eax, esp
mov ecx, dword [esi + 0x1a0]
mov dword [esi + 0x180], eax
mov eax, 0x1000
mov eax, ecx
call fcn.00437f10
mov eax, esp
and eax, 0xfffffff8
mov ecx, eax
mov esp, eax
mov ecx, dword [esi + 0x1a0]
call fcn.00529690
mov eax, ecx
call fcn.00437f10
mov eax, esp
mov ecx, 0x18
call fcn.005296a0
mov eax, 0x437360
mov eax, ecx
call fcn.00437f10
mov eax, edx
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0x194]
mov edx, dword [esi + 0x1a4]
call fcn.00528fb0
mov edi, dword [esi + 0x19c]
call fcn.00528fc0
mov dword [edi], ebx
xorps xmm0, xmm0
movups xmmword [ebx + 0x58], xmm0
call fcn.00528fd0
mov dword [ebx + 0x6c], 0
call fcn.00528fe0
call fcn.00528ff0
mov dword [ebx + 0x11c], 0
add ebx, 0x120
mov ecx, 0x4374a4
mov ecx, ebx
call fcn.00529000
mov dword [esi + 0x170], edx
call fcn.00468450
mov ecx, 0x14
call fcn.00529010
mov eax, 0x4374a4
mov eax, ecx
call fcn.00437f10
mov eax, esi
mov eax, esp
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, ecx
sub edi, 1
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete cl
cmp edx, 0xa
setl ch
or cl, ch
test cl, 1
call fcn.00529020
jne 0x5275d7
jmp 0x528c98
lea eax, [0x5dd6a0]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0x168]
mov dword [esp + 4], eax
call fcn.004d7000
add esp, 8
mov dword [esi + 0x164], eax
sub esp, 4
mov eax, 0x437258
mov eax, esp
mov ecx, dword [esi + 0x164]
mov dword [eax], ecx
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call eax
mov dword [esi + 0x160], eax
mov eax, dword [esi + 0x170]
mov ecx, dword [esi + 0x160]
mov dword [eax + 0x74], ecx
call fcn.00529030
call edx
mov dword [esi + 0x15c], eax
mov eax, dword [0x88c650]
call fcn.00529040
mov edx, eax
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
push ecx
mov ecx, 0xc3074637
xor ecx, 0xc3074637
cmp eax, ecx
pop ecx
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52767d
jmp 0x528da5
mov eax, dword [esi + 0x170]
mov ecx, dword [esi + 0x15c]
mov dword [eax + 0x78], ecx
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, 0x437390
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete al
cmp edi, 0xa
setl ah
or al, ah
test al, 1
jne 0x5276cf
jmp 0x528da5
call fcn.00529050
call fcn.00529060
mov dword [esi + 0x158], eax
call fcn.00529070
mov ecx, dword [0x88c654]
mov edx, 0x20
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x527720
jmp 0x528e1b
mov eax, 0
mov ecx, 0x94
mov edx, dword [esi + 0x170]
mov edi, dword [esi + 0x158]
mov dword [edx + 0x80], edi
add edx, 0x84
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x94
call fcn.00529080
mov dword [esi + 0x150], ecx
call fcn.00439740
add esp, 0xc
mov eax, dword [esi + 0x170]
mov dword [eax + 0x84], 0x94
add eax, 0x84
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, ecx
sub edi, 1
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
mov dword [esi + 0x14c], eax
jne 0x5277c5
jmp 0x528e1b
sub esp, 4
mov eax, 0x4372e8
mov eax, esp
mov ecx, dword [esi + 0x14c]
call fcn.00529090
mov eax, dword [sym.imp.KERNEL32.dll_GetVersionExA]
call eax
call fcn.005290a0
lea eax, [0x876958]
mov ecx, 0
mov edx, dword [esi + 0x170]
mov edi, dword [edx + 0x74]
mov ebx, dword [esi + 0x188]
mov dword [ebx], edi
mov edi, dword [edx + 0x74]
mov edx, dword [ebx]
add edi, dword [edx + 0x3c]
mov edx, dword [esi + 0x184]
mov dword [edx], edi
mov edi, dword [edx]
movzx edi, word [edi + 0x40]
shl edi, 8
mov edx, dword [edx]
movzx edx, word [edx + 0x42]
or edi, edx
mov edx, dword [esi + 0x170]
call fcn.005290b0
mov edi, dword [edx + 0x74]
sub esp, 0x14
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x144], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0x140], eax
lea eax, [0x568dd8]
mov ecx, 0
mov edx, dword [esi + 0x140]
mov edi, dword [esi + 0x170]
call fcn.005290c0
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x13c], ecx
call fcn.004d73d0
add esp, 0x14
call fcn.005290d0
lea eax, [0x568e72]
mov ecx, 0
mov edx, dword [esi + 0x138]
mov edi, dword [esi + 0x170]
mov dword [edi + 4], edx
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x134], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0x130], eax
lea eax, [0x5ec9e8]
mov ecx, 0
call fcn.005290e0
mov edi, dword [esi + 0x170]
call fcn.005290f0
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x12c], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0x128], eax
lea eax, [0x59adf0]
mov ecx, 0
mov edx, dword [esi + 0x128]
mov edi, dword [esi + 0x170]
mov dword [edi + 0xc], edx
call fcn.00529100
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x124], ecx
call fcn.004d73d0
add esp, 0x14
call fcn.00529110
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x5279f2
jmp 0x528e7d
call fcn.00529120
mov ecx, dword [esi + 0x170]
call fcn.00529130
mov eax, dword [ecx + 0x74]
mov edx, dword [0x88c650]
call fcn.00529140
mov ebx, ecx
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete cl
cmp edi, 0xa
setl ch
or cl, ch
test cl, 1
call fcn.00529150
jne 0x527a4a
jmp 0x528e7d
lea eax, [0x8844c2]
mov ecx, 0
sub esp, 0x14
mov edx, dword [esi + 0x11c]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x118], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0x114], eax
lea eax, [0x5ecae2]
mov ecx, 0
call fcn.00529160
mov edi, dword [esi + 0x170]
mov dword [edi + 0x14], edx
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.00529170
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0x10c], eax
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x527b1e
jmp 0x528db9
mov eax, dword [0x88c650]
call fcn.00529180
mov edx, 0x1fff
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x527b5e
jmp 0x528e92
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x170]
call fcn.00529190
call fcn.005291a0
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, 0x437384
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete cl
cmp edi, 0xa
setl ch
or cl, ch
test cl, 1
mov dword [esi + 0x108], eax
jne 0x527bbe
jmp 0x528e92
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x527bfc
jmp 0x528db9
lea eax, [0x88231c]
mov ecx, 0
sub esp, 0x14
mov edx, dword [esi + 0x108]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x104], ecx
call fcn.004d73d0
add esp, 0x14
call fcn.005291b0
lea eax, [0x5d9a40]
mov ecx, 0
call fcn.005291c0
mov edi, dword [esi + 0x170]
mov dword [edi + 0x20], edx
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xfc], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xf8], eax
lea eax, [0x5c67c0]
mov ecx, 0
mov edx, dword [esi + 0xf8]
call fcn.005291d0
call fcn.005291e0
call fcn.005291f0
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.00529200
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xf0], eax
lea eax, [0x5ccfa0]
mov ecx, 0
call fcn.00529210
mov edi, dword [esi + 0x170]
mov dword [edi + 0x24], edx
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xec], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xe8], eax
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x527d77
jmp 0x528dcd
mov eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0x170]
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x74]
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, 0x10000
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete cl
cmp edi, 0xa
setl ch
or cl, ch
test cl, 1
mov dword [esi + 0xe4], eax
jne 0x527dd3
jmp 0x528dcd
lea eax, [0x5e1ff0]
mov ecx, 0
sub esp, 0x14
mov edx, dword [esi + 0xe4]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xe0], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xdc], eax
lea eax, [0x568f7a]
mov ecx, 0
mov edx, dword [esi + 0xdc]
mov edi, dword [esi + 0x170]
call fcn.00529220
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.00529230
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xd4], eax
lea eax, [0x5c042c]
mov ecx, 0
call fcn.00529240
mov edi, dword [esi + 0x170]
mov dword [edi + 0x30], edx
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xd0], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xcc], eax
lea eax, [0x5e82e4]
mov ecx, 0
mov edx, dword [esi + 0xcc]
mov edi, dword [esi + 0x170]
call fcn.00529250
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xc8], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xc4], eax
lea eax, [0x88a6a6]
mov ecx, 0
mov edx, dword [esi + 0xc4]
mov edi, dword [esi + 0x170]
mov dword [edi + 0x38], edx
call fcn.00529260
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xc0], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xbc], eax
lea eax, [0x889a94]
mov ecx, 0
mov edx, dword [esi + 0xbc]
call fcn.00529270
mov dword [edi + 0x3c], edx
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.00529280
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xb4], eax
lea eax, [0x5ad950]
mov ecx, 0
mov edx, dword [esi + 0xb4]
mov edi, dword [esi + 0x170]
mov dword [edi + 0x40], edx
call fcn.00529290
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xb0], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xac], eax
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52804c
jmp 0x528ea6
mov eax, dword [esi + 0xac]
call fcn.005292a0
call fcn.005292b0
mov eax, dword [ecx + 0x74]
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete cl
cmp edi, 0xa
setl ch
or cl, ch
test cl, 1
call fcn.005292c0
jne 0x5280a3
jmp 0x528ea6
lea eax, [0x889b30]
pushfd
mov ecx, 0x713d2bf7
sub ecx, 0x713d2bf7
popfd
sub esp, 0x14
mov edx, dword [esi + 0xa8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0xa4], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0xa0], eax
lea eax, [0x88a752]
mov ecx, 0
mov edx, dword [esi + 0xa0]
mov edi, dword [esi + 0x170]
call fcn.005292d0
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.005292e0
call fcn.004d73d0
add esp, 0x14
call fcn.005292f0
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, 0x3fffff
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x528186
jmp 0x528eba
call fcn.00529300
mov ecx, dword [esi + 0x170]
mov dword [ecx + 0x4c], eax
mov eax, dword [ecx + 0x74]
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, edx
add ebx, 0xffffffff
imul edx, ebx
and edx, 1
cmp edx, 0
sete cl
cmp edi, 0xa
setl ch
or cl, ch
test cl, 1
mov dword [esi + 0x94], eax
jne 0x5281dc
jmp 0x528eba
lea eax, [0x876a06]
mov ecx, 0
sub esp, 0x14
call fcn.00529310
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x90], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0x8c], eax
lea eax, [0x884568]
mov ecx, 0
mov edx, dword [esi + 0x8c]
mov edi, dword [esi + 0x170]
mov dword [edi + 0x50], edx
mov edx, dword [edi + 0x74]
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esi + 0x88], ecx
call fcn.004d73d0
add esp, 0x14
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x84]
call fcn.00529320
call fcn.00529330
cmp dword [ecx + 0x118], 0x501
jb 0x5282c3
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x600
jae 0x5282c3
mov eax, dword [esi + 0x170]
mov ecx, dword [eax + 0x11c]
or ecx, 1
mov dword [eax + 0x11c], ecx
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x600
jb 0x528307
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x601
jae 0x528307
mov eax, dword [esi + 0x170]
mov ecx, dword [eax + 0x11c]
or ecx, 2
mov dword [eax + 0x11c], ecx
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x601
jb 0x5283e3
call fcn.00529340
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x528359
jmp 0x528de0
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x602
setb cl
call fcn.00529350
mov edi, dword [0x88c654]
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete ch
push ecx
mov ecx, 0x590136e5
xor ecx, 0x590136ef
cmp edi, ecx
pop ecx
setl al
or ch, al
test ch, 1
mov byte [esi + 0x83], cl
jne 0x5283b9
jmp 0x528de0
mov al, byte [esi + 0x83]
test al, 1
jne 0x5283cc
jmp 0x5283e3
mov eax, dword [esi + 0x170]
call fcn.00529360
or ecx, 4
mov dword [eax + 0x11c], ecx
call fcn.00529370
cmp dword [eax + 0x118], 0x602
jb 0x528493
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, 0
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x528439
jmp 0x528ece
call fcn.00529380
mov ecx, dword [eax + 0x11c]
or ecx, 8
call fcn.00529390
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov edi, ecx
sub edi, 1
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52848e
jmp 0x528ece
jmp 0x528493
call fcn.005293a0
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
push ebx
mov ebx, 0x11f7d9dc
xor ebx, 0x11f7d9d6
cmp ecx, ebx
pop ebx
setl bh
or bl, bh
test bl, 1
jne 0x5284d8
jmp 0x528de5
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x602
setae cl
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete ch
cmp edi, 0xa
setl al
or ch, al
test ch, 1
mov byte [esi + 0x82], cl
jne 0x528530
jmp 0x528de5
mov al, byte [esi + 0x82]
test al, 1
jne 0x528543
jmp 0x52868f
call fcn.005293b0
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52857f
jmp 0x528eeb
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x603
setb cl
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, 0x1f
mov ebx, edx
sub ebx, 1
imul edx, ebx
and edx, 1
cmp edx, 0
sete ch
cmp edi, 0xa
setl al
or ch, al
test ch, 1
mov byte [esi + 0x81], cl
jne 0x5285dc
jmp 0x528eeb
mov al, byte [esi + 0x81]
test al, 1
jne 0x5285ef
jmp 0x52868f
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52862b
jmp 0x528dea
mov eax, dword [esi + 0x170]
mov ecx, dword [eax + 0x11c]
or ecx, 0x10
mov dword [eax + 0x11c], ecx
mov ecx, dword [0x88c650]
call fcn.005293c0
mov edi, ecx
add edi, 0xffffffff
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
push ebx
mov ebx, 0x7732ce38
xor ebx, 0x7732ce32
cmp edx, ebx
pop ebx
setl bh
or bl, bh
test bl, 1
jne 0x52868a
jmp 0x528dea
jmp 0x52868f
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x5286cd
jmp 0x528e06
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x118], 0x603
setae cl
mov edx, dword [0x88c650]
mov edi, dword [0x88c654]
mov ebx, edx
add ebx, 0xffffffff
imul edx, ebx
and edx, 1
cmp edx, 0
sete ch
cmp edi, 0xa
setl al
or ch, al
test ch, 1
mov byte [esi + 0x80], cl
jne 0x528725
jmp 0x528e06
mov al, byte [esi + 0x80]
test al, 1
jne 0x528738
jmp 0x5287d0
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x528776
jmp 0x528ef0
call fcn.005293d0
mov ecx, dword [eax + 0x11c]
or ecx, 0x20
mov dword [eax + 0x11c], ecx
call fcn.005293e0
mov edx, dword [0x88c654]
mov edi, ecx
add edi, 0xffffffff
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x5287cb
jmp 0x528ef0
jmp 0x5287d0
mov ecx, dword [esi + 0x170]
call fcn.00520170
mov eax, dword [0x87e0dc]
mov ecx, dword [esi + 0x170]
add ecx, 0x7c
mov edx, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], ecx
call edx
call fcn.005293f0
sub esp, 0xc
mov eax, 0x437480
mov eax, esp
mov ecx, dword [esi + 0x78]
mov dword [eax + 8], ecx
call fcn.00529400
call fcn.00529410
call fcn.00529420
mov eax, dword [esi + 0x7c]
call eax
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
push ebx
mov ebx, 0x11fdabae
xor ebx, 0x11fdabae
cmp eax, ebx
pop ebx
je 0x528851
mov eax, dword [esi + 0x170]
cmp dword [eax + 0x7c], 0
jne 0x5288da
call fcn.00529430
call fcn.00529440
mov edx, eax
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52888e
jmp 0x528f0b
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, esi
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
push ebx
mov ebx, 0x6ae94c60
xor ebx, 0x6ae94c6a
cmp ecx, ebx
pop ebx
setl bh
or bl, bh
test bl, 1
jne 0x5288d5
jmp 0x528f0b
jmp 0x528c85
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, 4
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52891b
jmp 0x528f10
mov eax, dword [esi + 0x180]
mov dword [eax], 0
mov ecx, dword [0x87e4d8]
mov edx, dword [esi + 0x170]
mov edi, dword [edx + 0x7c]
mov ebx, dword [0x88c650]
mov eax, dword [0x88c654]
mov edx, 0x4374bc
mov edx, ebx
add edx, 0xffffffff
imul ebx, edx
and ebx, 1
cmp ebx, 0
sete dl
cmp eax, 0xa
setl dh
or dl, dh
test dl, 1
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], ecx
jne 0x52897e
jmp 0x528f10
sub esp, 0x14
mov eax, 0x437390
mov eax, esp
mov ecx, dword [esi + 0x180]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x6c]
call fcn.00529450
call fcn.00529460
mov dword [eax + 8], 0
mov dword [eax + 4], 1
call fcn.00529470
call eax
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x180]
call fcn.00529480
sub esp, 4
mov edx, esp
call fcn.00529490
mov ecx, dword [esi + 0x17c]
call fcn.00552ae0
mov dword [esi + 0x60], eax
mov ecx, dword [esi + 0x17c]
call fcn.00521d30
mov dword [esi + 0x5c], eax
mov eax, 0
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x180]
mov edi, dword [edx]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], edi
mov dword [esi + 0x58], eax
call fcn.00439740
add esp, 0xc
mov eax, dword [0x87f0f0]
mov ecx, dword [esi + 0x180]
mov edx, dword [ecx]
mov ecx, dword [esi + 0x17c]
mov dword [esi + 0x54], eax
call fcn.005294a0
call fcn.00521d30
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x170]
mov edx, dword [ecx + 0x7c]
sub esp, 0x14
mov edi, esp
mov ebx, dword [esi + 0x180]
mov dword [edi + 0x10], ebx
call fcn.005294b0
mov dword [edi + 0xc], ecx
mov dword [edi + 8], eax
mov dword [edi], edx
mov dword [edi + 4], 1
call fcn.005294c0
call eax
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
cmp eax, 0
je 0x528bfa
call fcn.005294d0
mov ecx, dword [esi + 0x17c]
mov dword [esi + 0x44], eax
call fcn.00521d30
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
sub esp, 4
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esi + 0x44]
call ecx
call fcn.005294e0
mov eax, dword [esi + 0x3c]
cmp eax, 0
je 0x528bfa
mov eax, dword [esi + 0x178]
mov dword [eax], 0
mov ecx, dword [0x87f970]
mov edx, dword [esi + 0x17c]
call fcn.005294f0
mov ecx, edx
call fcn.00521d30
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x34]
call fcn.00529500
sub esp, 8
mov edx, esp
mov edi, dword [esi + 0x178]
mov dword [edx + 4], edi
mov dword [edx], ecx
mov ecx, dword [esi + 0x38]
call ecx
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
push edx
mov edx, 0xe2861bfa
xor edx, 0xe2861bfa
cmp eax, edx
pop edx
je 0x528bf5
mov eax, dword [0x88c650]
call fcn.00529510
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x528b51
jmp 0x528f21
mov eax, dword [esi + 0x170]
add eax, 0x120
mov ecx, dword [esi + 0x178]
mov edx, dword [ecx]
call fcn.00529520
mov ebx, dword [0x88c654]
mov ecx, 0x4374b0
mov ecx, edi
sub ecx, 1
imul edi, ecx
and edi, 1
cmp edi, 0
sete cl
push edx
mov edx, 0xbae112a8
xor edx, 0xbae112a2
cmp ebx, edx
pop edx
setl ch
or cl, ch
test cl, 1
mov dword [esi + 0x2c], eax
call fcn.00529530
jne 0x528bb8
jmp 0x528f21
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0x28]
mov dword [eax], ecx
mov ecx, dword [esi + 0x174]
call fcn.00405440
call fcn.00529540
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0x174]
mov dword [eax], ecx
mov ecx, dword [esi + 0x2c]
call fcn.004eeaa0
mov ecx, dword [esi + 0x174]
mov dword [esi + 0x20], eax
call fcn.004054e0
jmp 0x528bfa
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x528c36
jmp 0x528e0b
mov ecx, dword [esi + 0x17c]
call fcn.004eba00
mov ecx, dword [0x88c650]
mov eax, dword [0x88c654]
mov edx, eax
mov edx, ecx
sub edx, 1
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x528c80
jmp 0x528e0b
jmp 0x528c85
mov eax, dword [esi + 0x198]
call fcn.00529550
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, 0x1fff
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
push ebx
mov ebx, 0x3fcc8a14
xor ebx, 0x3fcc8a1e
cmp ecx, ebx
pop ebx
setl bh
or bl, bh
test bl, 1
jne 0x528ce2
jmp 0x528f26
mov eax, 4
mov dword [esi + 0x1c], eax
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x18], eax
mov eax, ecx
call fcn.00437f10
mov ecx, 0x437390
mov eax, esp
mov ecx, dword [esi + 0x1a4]
mov dword [eax], ecx
call fcn.00529560
mov edx, dword [esi + 0x18]
mov dword [edx], eax
mov dword [eax + 0x58], 0
mov dword [eax + 0x5c], 0
mov dword [eax + 0x60], 0
mov dword [eax + 0x64], 0
mov dword [eax + 0x68], 0
mov dword [eax + 0x6c], 0
mov dword [eax + 0x70], 0
call fcn.00529570
call fcn.00529580
sub eax, 0xfffffee0
mov ecx, eax
call fcn.00468450
call fcn.00529590
mov edx, dword [0x88c654]
mov edi, ecx
sub edi, 1
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
mov dword [esi + 0x14], eax
jne 0x528da0
jmp 0x528f26
jmp 0x527410
mov eax, dword [esi + 0x170]
mov ecx, dword [esi + 0x15c]
mov dword [eax + 0x78], ecx
jmp 0x52767d
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x170]
mov dword [ecx + 0x18], eax
jmp 0x527b1e
call fcn.005295a0
mov ecx, dword [esi + 0x170]
mov dword [ecx + 0x28], eax
jmp 0x527d77
jmp 0x528359
jmp 0x5284d8
call fcn.005295b0
mov ecx, dword [eax + 0x11c]
or ecx, 0x10
mov dword [eax + 0x11c], ecx
jmp 0x52862b
jmp 0x5286cd
mov ecx, dword [esi + 0x17c]
call fcn.004eba00
jmp 0x528c36
mov eax, 0
pushfd
mov ecx, 0xe22c471b
xor ecx, 0xe22c478f
popfd
mov edx, dword [esi + 0x170]
mov edi, dword [esi + 0x158]
mov dword [edx + 0x80], edi
add edx, 0x84
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x94
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], ecx
call fcn.00439740
add esp, 0xc
call fcn.005295c0
mov dword [eax + 0x84], 0x94
jmp 0x527720
call fcn.005295d0
mov ecx, dword [esi + 0x170]
call fcn.005295e0
jmp 0x5279f2
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x170]
mov dword [ecx + 0x18], eax
jmp 0x527b5e
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0x170]
mov dword [ecx + 0x44], eax
jmp 0x52804c
mov eax, dword [esi + 0x98]
mov ecx, dword [esi + 0x170]
mov dword [ecx + 0x4c], eax
jmp 0x528186
mov eax, dword [esi + 0x170]
mov ecx, dword [eax + 0x11c]
or ecx, 8
mov dword [eax + 0x11c], ecx
jmp 0x528439
jmp 0x52857f
call fcn.005295f0
call fcn.00529600
or ecx, 0x20
mov dword [eax + 0x11c], ecx
jmp 0x528776
jmp 0x52888e
mov eax, dword [esi + 0x180]
mov dword [eax], 0
jmp 0x52891b
jmp 0x528b51
mov eax, 4
mov dword [esi + 8], eax
call fcn.00437f10
mov eax, esp
mov ecx, dword [esi + 8]
call fcn.00529610
mov eax, ecx
mov eax, ecx
call fcn.00437f10
mov eax, esp
call fcn.00529620
mov dword [eax], ecx
call fcn.00529630
call fcn.00529640
mov dword [edx], eax
mov dword [eax + 0x58], 0
mov dword [eax + 0x5c], 0
mov dword [eax + 0x60], 0
mov dword [eax + 0x64], 0
mov dword [eax + 0x68], 0
mov dword [eax + 0x6c], 0
mov dword [eax + 0x70], 0
call fcn.00529650
mov dword [eax + 0x11c], 0
add eax, 0x120
mov ecx, edx
mov ecx, eax
call fcn.00468450
mov dword [esi], eax
jmp 0x528ce2