Function at 0x4f4b64
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x460
mov ecx, dword [ebp + 8]
push ebx
push esi
push edi
xor edi, edi
xor eax, eax
cmp dword [ecx], edi
push 0x50
sete al
lea edx, [ebp - 0x154]
push edi
push edx
mov dword [ebp - 0x54], edi
mov dword [ebp - 8], edi
mov dword [ebp - 4], edi
mov esi, eax
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x158], edi
call fcn.004f83b2
push 0x103
lea eax, [ebp - 0x25b]
push edi
push eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x80], 0xffffffff
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x64], edi
mov byte [ebp - 0x25c], 0
call fcn.004f83b2
add esp, 0x18
mov dword [ebp - 0x34], 0x10099a0
call fcn.004f3084
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0xc0], eax
cmp ebx, edi
jne 0x4f4c0d
mov eax, dword [0x100b238]
cmp eax, edi
je 0x4f4bfc
push eax
call fcn.004f2494
push 0x228
push 0x40
call fcn.004f2464
mov dword [0x100b238], eax
cmp esi, edi
je 0x4f4c22
mov ecx, dword [ebp + 0xc]
push ecx
push 0x1001ef0
call fcn.004f2964
add esp, 8
xor edx, edx
cmp ebx, edi
setne dl
add edx, 0x3f3
mov dword [ebp - 0x3c], edx
cmp dword [0x100ab34], edi
je 0x4f4c71
mov eax, dword [0x100ab14]
mov ecx, dword [0x100ab10]
shrd ecx, eax, 4
shr eax, 4
cmp eax, edi
ja 0x4f4c61
jb 0x4f4c57
cmp ecx, 1
jae 0x4f4c61
mov ecx, 1
mov dword [ebp - 0x70], edi
jmp 0x4f4c64
mov dword [ebp - 0x70], eax
push edi
push ecx
push edi
push 0x3f9
call fcn.004f6864
cmp ebx, edi
mov ebx, dword [ebp + 0x18]
jne 0x4f4cce
cmp ebx, edi
mov dword [0x100b230], edi
mov dword [0x100b234], edi
jle 0x4f4cce
mov esi, dword [0x100b238]
add esi, 4
lea ecx, [ecx]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x4f4cce
mov edx, esi
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4f4ca4
test esi, esi
je 0x4f4cc3
mov eax, esi
mov edx, 0x104
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4f4cb9
inc edi
add esi, 0x228
cmp edi, ebx
jl 0x4f4c94
xor esi, esi
mov dword [0x100b23c], esi
mov dword [0x100ab40], esi
call fcn.004f4474
mov edi, dword [ebp + 0xc]
push esi
push edi
call fcn.004f2e54
mov edx, 0x10099a0
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x4f4cf4
call fcn.004f6844
mov dword [0x100ab48], esi
cmp dword [0x100a390], esi
jne 0x4f4d5b
push esi
push esi
push 3
push esi
push 1
push SysReAllocString
push esi
push edi
call fcn.004f2e54
push eax
call fcn.004f3314
mov dword [0x1009abc], eax
cmp eax, 0xffffffff
jne 0x4f4d5b
push edi
push 0x1001ecc
push esi
push 0x3a1
push 0x1001664
call fcn.004f3194
add esp, 0x14
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [0x100ad98]
mov dword [ebp - 0x88], esi
mov dword [0x100ab50], esi
mov dword [0x100ab54], esi
mov dword [0x100ad90], esi
mov dword [0x100ad94], esi
mov dword [0x100ad88], esi
mov dword [0x100ad8c], esi
cmp eax, esi
je 0x4f4da0
push 0x8000
push esi
push eax
call fcn.004f25a4
mov dword [0x100ad98], esi
push 0x1102c
call fcn.004f24b4
add eax, 0x1000
lea ecx, [eax + 0x1c]
and ecx, 0xfff
sub eax, ecx
push 0x1102c
mov dword [ebp - 0xb8], eax
call fcn.004f24b4
add eax, 0x1000
push 4
lea edx, [eax + 0x1c]
push 0x1000
and edx, 0xfff
push 0x10000
sub eax, edx
push esi
mov dword [ebp - 0x38], eax
call fcn.004f2554
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0x44], esi
jne 0x4f503f
cmp dword [0x100a354], 0
jne 0x4f5048
cmp dword [ebp + 0x14], 0
jne 0x4f4f68
mov eax, dword [0x100b238]
test ebx, ebx
jle 0x4f4ee3
xor esi, esi
mov dword [esi + eax + 0x214], 1
lea eax, [esi + eax + 4]
push eax
call fcn.004f7684
mov ecx, dword [0x100b238]
mov dword [esi + ecx + 0x20c], eax
mov ecx, eax
lea edx, [ebp - 0x460]
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4f4e54
lea eax, [ebp - 0x460]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4e67
sub eax, edx
cmp byte [ebp + eax - 0x460], 0x5c
je 0x4f4e96
lea edi, [ebp - 0x460]
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4f4e84
mov dx, word [0x1001ec8]
mov word [edi], dx
push 0x10
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x18]
push eax
push 0x41
lea ecx, [ebp - 0x104]
push ecx
lea edx, [ebp - 0x460]
push edx
call fcn.004f68b4
test eax, eax
mov eax, dword [0x100b238]
jne 0x4f4ed4
mov dword [esi + eax + 0x214], 0
add esi, 0x228
sub ebx, 1
jne 0x4f4e24
add eax, 4
push eax
call fcn.004f6894
test eax, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
jne 0x4f4f1b
push ecx
lea edx, [ebp - 0x25c]
push edx
push 0x1001eb0
push 0
push 0x3e4
push 0x1001664
call fcn.004f3194
add esp, 0x18
jmp 0x4f54d4
push 0
push 0
push 3
push 0
push 1
push 0xc0000000
push ecx
call fcn.004f3314
mov edx, dword [0x100b238]
mov dword [edx], eax
mov dword [ebp - 0x35c], eax
cmp dword [edx], 0xffffffff
jne 0x4f4f8a
lea edx, [ebp - 0x25c]
push edx
push 0x1001694
push 0
push 0x404
push 0x1001664
call fcn.004f3194
add esp, 0x14
jmp 0x4f54d4
mov edx, dword [0x100b238]
xor eax, eax
test ebx, ebx
jle 0x4f4f8a
mov ecx, edx
mov esi, dword [ecx]
mov dword [ebp + eax*4 - 0x35c], esi
inc eax
add ecx, 0x228
cmp eax, ebx
jl 0x4f4f76
mov eax, dword [edx]
mov ecx, dword [0x1009088]
push 0x10000
push 0x20
mov dword [0x1009ab8], eax
call fcn.004f7db4
test eax, eax
jne 0x4f4fb7
push 0x1001e90
push eax
push 0x415
jmp 0x4f54c7
mov ecx, dword [0x1009088]
mov dword [ecx + 0x10], 0
mov edx, dword [0x1009ab8]
push edx
call fcn.004f3284
test byte [0x100ab30], 0x10
mov esi, dword [ebp + 0x10]
je 0x4f4ffa
mov eax, dword [0x100b238]
mov ecx, dword [eax + 0x210]
push esi
push ecx
add eax, 4
push eax
push 0x1001e64
call fcn.004f2964
add esp, 0x10
mov eax, dword [0x100b238]
mov edx, dword [eax + 0x21c]
mov ecx, dword [eax + 0x218]
push edx
push ecx
lea edx, [ebp - 8]
push edx
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [eax + 0x210]
lea edx, [eax + 0x220]
push edx
push esi
push ecx
lea edx, [ebp - 0x158]
push edx
mov edx, dword [eax]
lea ecx, [eax + 4]
push ecx
push edx
call fcn.004f6874
test eax, eax
je 0x4f54d4
cmp dword [0x100a354], 0
je 0x4f5095
mov eax, dword [0x100b238]
push 0
push 0x8000000
push 3
push 0
push 3
push SysReAllocString
add eax, 4
push eax
call fcn.004f3314
mov dword [ebp - 0x80], eax
cmp eax, 0xffffffff
jne 0x4f5095
lea ecx, [ebp - 0x25c]
push ecx
push 0x1001694
push 0
push 0x447
push 0x1001664
call fcn.004f3194
add esp, 0x14
jmp 0x4f54d4
mov dword [ebp + 0x10], 0
call fcn.004f4474
mov edx, dword [ebp - 0x3c]
push 0
push 0x3e8
push 0
push edx
call fcn.004f6864
push 0x48
push 0
push 0x100ada0
call fcn.004f83b2
add esp, 0xc
call fcn.004f3084
mov ecx, dword [0x10099a0]
mov dword [0x100ada0], eax
cmp ecx, 0x5c3f3f5c
je 0x4f510c
movzx eax, cl
sub eax, 0x5c
jne 0x4f5104
movzx eax, ch
sub eax, 0x3f
jne 0x4f5104
movzx eax, byte [0x10099a2]
sub eax, 0x3f
jne 0x4f5104
movzx eax, byte [0x10099a3]
sub eax, 0x5c
je 0x4f510c
sar eax, 0x1f
or eax, 1
jne 0x4f5113
mov edx, 0x10099a4
jmp 0x4f5118
mov edx, 0x10099a0
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
test ecx, ecx
je 0x4f519d
cmp dword [ecx], 0x5c2e5c5c
je 0x4f518b
movzx eax, byte [ecx]
sub eax, 0x5c
jne 0x4f5150
movzx eax, byte [ecx + 1]
sub eax, 0x5c
jne 0x4f5150
movzx eax, byte [ecx + 2]
sub eax, 0x2e
jne 0x4f5150
movzx eax, byte [ecx + 3]
sub eax, 0x5c
je 0x4f518b
sar eax, 0x1f
or eax, 1
je 0x4f518b
cmp dword [ecx], 0x5c3f3f5c
je 0x4f518b
movzx eax, byte [ecx]
sub eax, 0x5c
jne 0x4f5183
movzx eax, byte [ecx + 1]
sub eax, 0x3f
jne 0x4f5183
movzx eax, byte [ecx + 2]
sub eax, 0x3f
jne 0x4f5183
movzx eax, byte [ecx + 3]
sub eax, 0x5c
je 0x4f518b
sar eax, 0x1f
or eax, 1
jne 0x4f518e
add ecx, 4
push ecx
push edx
push 0x1001e58
call fcn.004f2964
add esp, 0xc
call fcn.004f6834
mov edi, edi
rdtsc
cmp dword [0x100ab40], 0
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], eax
jne 0x4f54d4
mov ecx, dword [0x100ab50]
mov edx, dword [0x100ab54]
lea eax, [ebp - 0x50]
push eax
push 0xc
mov dword [ebp - 0x5c], ecx
lea ecx, [ebp - 0x14]
push ecx
push 0xffffffffffffffff
mov dword [ebp - 0x58], edx
mov edx, dword [0x1009abc]
push 0xffffffffffffffff
push edx
call fcn.004f44f4
test eax, eax
je 0x4f60b5
mov eax, dword [ebp - 0x14]
cmp eax, 0x304e4e53
jne 0x4f5231
mov edx, dword [0x1009abc]
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x14]
push ecx
push edx
call fcn.004f4a34
mov ecx, dword [ebp - 0xac]
mov eax, dword [ecx]
add dword [ebp + 0x10], eax
add dword [0x1009988], eax
push ecx
adc dword [0x100998c], 0
call fcn.004f2494
jmp 0x4f5b0a
cmp eax, 0x5f444e45
je 0x4f60c6
cmp eax, 0x45544e53
jne 0x4f5253
mov ecx, dword [0x1009abc]
lea eax, [ebp - 0x14]
push eax
push ecx
jmp 0x4f6096
cmp eax, 0x49524453
je 0x4f608c
cmp eax, 0x30494e53
jne 0x4f5275
mov edx, dword [0x1009abc]
lea ecx, [ebp - 0x14]
push ecx
push edx
jmp 0x4f6096
cmp eax, 0x30564e53
jne 0x4f52b6
mov edx, dword [0x1009abc]
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x14]
push ecx
push edx
call fcn.004f4a34
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x5f]
shr eax, 4
cmp eax, 1
jae 0x4f52a3
mov eax, 1
mov ecx, dword [ebp - 0x3c]
push 0
push eax
push 0
push ecx
call fcn.004f6864
jmp 0x4f609b
cmp eax, 0x5458454e
jne 0x4f546b
mov edx, dword [0x1009abc]
push edx
call fcn.004f2c64
mov edi, dword [ebp - 0x54]
mov ebx, dword [ebp + 0xc]
inc edi
push edi
push ebx
mov dword [ebp - 0x54], edi
call fcn.004f2e54
mov edx, 0x10099a0
nop
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x4f52e4
lea ebx, [ebx]
mov eax, dword [0x100ab48]
xor esi, esi
push esi
push eax
push 3
push esi
push 1
push SysReAllocString
push 0x10099a0
call fcn.004f3314
mov dword [0x1009abc], eax
cmp eax, 0xffffffff
jne 0x4f5332
push 0x10099a0
push 0x1001e44
call fcn.004f24d4
add esp, 8
jmp 0x4f53b3
mov ecx, dword [0x100ad98]
mov dword [ebp - 0x30], esi
mov dword [0x100ab50], esi
mov dword [0x100ab54], esi
mov dword [0x100ad90], esi
mov dword [0x100ad94], esi
mov dword [0x100ad88], esi
mov dword [0x100ad8c], esi
cmp ecx, esi
je 0x4f537a
push 0x8000
push esi
push ecx
call fcn.004f25a4
mov eax, dword [0x1009abc]
mov dword [0x100ad98], esi
lea ecx, [ebp - 0x50]
push ecx
push 0xc
lea edx, [ebp - 0x14]
push edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.004f44f4
test eax, eax
jne 0x4f5399
push 0x1001e1c
jmp 0x4f53ab
cmp dword [ebp - 0x14], 0x4f434e53
je 0x4f543d
push 0x1001df8
call fcn.004f24d4
add esp, 4
cmp eax, esi
je 0x4f543d
cmp dword [0x100ab44], esi
je 0x4f648f
push 0x2e
push edi
push ebx
call fcn.004f2e54
push eax
call fcn.004f8466
mov esi, eax
push esi
push 0x1001df4
call fcn.004f24d4
add esp, 0x10
push eax
push esi
push 0
push 0x1001620
push 0x1001dd8
call fcn.004f24d4
add esp, 0x10
push eax
push edi
push ebx
call fcn.004f2e54
push eax
push 0x1001620
push 0x1001dc8
call fcn.004f24d4
add esp, 0xc
push eax
mov eax, dword [0x100999c]
push 0x10099a0
push 0
push eax
call fcn.004f6854
test eax, eax
je 0x4f54d4
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x54]
jmp 0x4f52f4
push 0x10099a0
push 0x1001db8
push 0x3f6
call fcn.004f6834
mov edx, dword [0x1009abc]
add esp, 0xc
lea ecx, [ebp - 0x14]
push ecx
mov dword [ebp - 0x60], 1
push edx
jmp 0x4f6096
cmp eax, 0x304f4e53
je 0x4f608c
cmp eax, 0x4f434e53
je 0x4f608c
cmp eax, 0x52434e53
jne 0x4f55d8
mov edx, dword [0x1009abc]
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x14]
push ecx
push edx
call fcn.004f4a34
mov eax, dword [ebp - 0xb0]
push eax
mov ecx, 0x100b23c
call fcn.004f67e4
test eax, eax
jne 0x4f609b
push 0x1001d70
push eax
push 0x533
push 0x1001664
call fcn.004f3194
add esp, 0x10
mov ebx, dword [ebp - 0x44]
mov dword [ebp - 0x40], 1
cmp dword [0x100a6d8], 1
jne 0x4f5509
mov eax, dword [0x1009984]
mov ecx, dword [0x1009980]
push 0xc
push eax
push ecx
call fcn.004f7464
push eax
push 0x1001d40
call fcn.004f2964
add esp, 8
call fcn.004f6834
mov ecx, dword [0x1009088]
call fcn.004f7cf4
cmp dword [0x100a354], 0
je 0x4f553f
mov eax, dword [ebp - 0x80]
cmp eax, 0xffffffff
je 0x4f5530
push eax
call fcn.004f2c64
push 0
push 0x1001d14
call fcn.004f2964
add esp, 8
test ebx, ebx
jne 0x4f5588
cmp dword [0x100a354], ebx
jne 0x4f5588
mov edx, dword [0x100997c]
mov eax, dword [0x1009978]
push 0xc
push edx
push eax
call fcn.004f7464
mov ecx, dword [0x100ab2c]
mov edx, dword [0x100ab28]
push eax
push 0xc
push ecx
push edx
call fcn.004f7464
push eax
push 0x1001cfc
push 0x516
call fcn.004f6834
add esp, 0x10
mov eax, dword [0x1009abc]
cmp eax, 0xffffffff
je 0x4f55a2
push eax
call fcn.004f2c64
mov dword [0x1009abc], 0xffffffff
mov eax, dword [0x1009ab8]
push eax
call fcn.004f2a14
cmp eax, 1
je 0x4f55cc
mov ecx, dword [0x1009ab8]
push ecx
call fcn.004f2a14
push eax
push 0x1001cd4
call fcn.004f2964
add esp, 8
mov eax, dword [ebp - 0x40]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 0x30444e53
je 0x4f5605
cmp eax, 0x30484e53
je 0x4f5605
push eax
push 0x1001cb4
push 0
push 0x53e
push 0x1001664
call fcn.004f3194
add esp, 0x14
jmp 0x4f595b
mov eax, dword [ebp - 0x10]
cmp eax, 0x10028
jbe 0x4f562e
push eax
push 0x1001c8c
push 0
push 0x544
push 0x1001664
call fcn.004f3194
add esp, 0x14
jmp 0x4f595b
mov esi, dword [ebp - 0x38]
mov edx, dword [0x1009abc]
lea ecx, [ebp - 0x50]
push ecx
push eax
lea ebx, [esi + 8]
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
call fcn.004f44f4
test eax, eax
jne 0x4f5679
mov eax, dword [0x100ab54]
mov ecx, dword [0x100ab50]
push eax
push ecx
push 0x1001c60
push 0
push 0x54b
push 0x1001664
call fcn.004f3194
add esp, 0x18
jmp 0x4f595b
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0x50]
lea edx, [eax + 0x14]
cmp ecx, edx
je 0x4f56ba
mov edx, dword [0x100ab50]
push 0x14
push eax
mov eax, dword [ebp - 0x10]
push ecx
mov ecx, dword [0x100ab54]
push eax
push ecx
push edx
push 0x1001c24
push 0
push 0x552
push 0x1001664
call fcn.004f3194
add esp, 0x28
jmp 0x4f595b
push 1
push 8
lea eax, [ebp - 0x14]
push eax
call fcn.004f7544
mov ecx, dword [ebp - 0x10]
push eax
push ecx
push ebx
call fcn.004f7544
mov esi, eax
mov eax, dword [ebp - 0xc]
cmp esi, eax
je 0x4f5816
mov edi, dword [ebp - 0x38]
lea edx, [ebp + 0xb]
push edx
lea ecx, [ebp + 0x17]
push ecx
lea edx, [ebp - 0xbc]
push edx
push eax
mov eax, dword [edi + 0x14]
push eax
lea ecx, [edi + 0x1c]
push ecx
push 0x14
push ebx
push 8
lea edx, [ebp - 0x14]
push edx
call fcn.004f7314
sub eax, 1
je 0x4f573c
mov eax, dword [ebp - 0xc]
mov ecx, dword [edi + 0x14]
mov edx, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x5c]
push esi
push ecx
push edx
push eax
push 0x1001bc8
push 0
push 0x58b
push 0x1001664
call fcn.004f3194
add esp, 0x24
jmp 0x4f595b
add dword [0x100ab08], 1
mov esi, dword [ebp - 0xbc]
movzx ecx, byte [ebp + 0xb]
adc dword [0x100ab0c], 0
movzx edx, byte [ebp + 0x17]
xor edi, edi
add esi, dword [ebp - 0x5c]
push ecx
adc edi, dword [ebp - 0x58]
add esi, 4
push edx
adc edi, 0
push edi
push esi
push 0x1001b90
call fcn.004f2964
movzx eax, byte [ebp + 0xb]
movzx ecx, byte [ebp + 0x17]
push eax
push ecx
push edi
push esi
push 0x1001b18
call fcn.004f24d4
add esp, 0x28
cmp dword [0x100ab44], 0
mov esi, eax
je 0x4f57e1
push 0
push 0x31
push 0x1001620
push 0x1001b08
call fcn.004f24d4
add esp, 8
push eax
push 0x1001ae4
push esi
push 0x1001adc
call fcn.004f24d4
mov edx, dword [0x100999c]
add esp, 0xc
push eax
push 0xa
push edx
call fcn.004f68c4
cmp eax, 1
je 0x4f5816
cmp eax, 2
je 0x4f54d4
jmp 0x4f5816
push esi
push 0x1001ad8
call fcn.004f2964
add esp, 8
push 0x100dc00
call fcn.004f68a4
push eax
call fcn.004f68a4
test eax, eax
jne 0x4f5816
push esi
push 0x1001ad8
push 0x100dc20
call fcn.004f2914
add esp, 0xc
mov esi, dword [ebp - 0x38]
test byte [esi + 0x18], 0x10
je 0x4f5854
rdtsc
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x98], eax
mov eax, dword [ebx]
push eax
mov dword [ebp - 0x94], edx
push ecx
lea edx, [esi + 0x1c]
push edx
mov ecx, 0x100b23c
call fcn.004f67b4
lea eax, [ebp - 0x98]
push eax
call fcn.004f6894
add dword [0x1009ab0], eax
test byte [esi + 0x18], 4
mov dword [ebp - 0x30], 0
je 0x4f586f
add dword [esi + 0x14], 0xfffffffc
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + eax + 0x1c]
mov dword [ebp - 0x30], ecx
mov ebx, dword [ebp - 0x38]
mov esi, dword [ebx + 0x14]
lea edx, [ebp - 0x4c]
lea edi, [ebx + 0x1c]
push edx
mov dword [ebp - 0x28], edi
call fcn.004f6894
add dword [0x1009aa4], eax
mov eax, dword [ebp - 0x50]
add dword [0x100ab28], eax
adc dword [0x100ab2c], 0
test byte [ebx + 0x18], 2
je 0x4f58d2
rdtsc
push edi
mov edi, dword [ebp - 0xb4]
push edi
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x90], eax
call fcn.004f4304
lea ecx, [ebp - 0x90]
push ecx
mov esi, eax
mov dword [ebp - 0x28], edi
call fcn.004f6894
add dword [0x1009990], eax
test byte [ebx + 0x18], 1
je 0x4f590a
rdtsc
mov ebx, dword [ebp - 0xb8]
push esi
push edi
add ebx, 0x1c
push ebx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x74], eax
call fcn.004f43d4
lea edx, [ebp - 0x74]
mov edi, ebx
push edx
mov esi, eax
mov dword [ebp - 0x28], edi
call fcn.004f6894
add dword [0x1009ab4], eax
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebx + 0x10]
cmp esi, eax
je 0x4f592e
push eax
push esi
push 0x1001aac
push 0
push 0x5c1
push 0x1001664
call fcn.004f3194
add esp, 0x18
jmp 0x4f595b
test byte [ebx + 0x18], 4
je 0x4f5994
push 1
push esi
push edi
call fcn.004f7544
cmp eax, dword [ebp - 0x30]
je 0x4f5994
push 0x1001a90
push 0
push 0x5c9
push 0x1001664
call fcn.004f3194
add esp, 0x10
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
push eax
push ecx
push 0x10099a0
push 0x1001a58
push 0
push 0x707
push 0x1001664
call fcn.004f3194
add esp, 0x1c
push 0xb
call fcn.004f6884
mov dword [ebp - 0x40], 0xb
jmp 0x4f609b
cmp dword [ebp - 0x44], 0
jne 0x4f5b0a
cmp dword [0x100a354], 0
jne 0x4f5b0a
mov ecx, dword [ebp - 0x38]
mov edx, dword [0x100b230]
mov eax, dword [0x100b234]
add ecx, 8
add dword [ecx], edx
mov dword [ebp - 0x30], ecx
adc dword [ecx + 4], eax
cmp dword [ebp - 0x14], 0x30484e53
jne 0x4f5a74
xor edi, edi
nop
test esi, esi
jle 0x4f5b0a
mov edx, dword [ebp - 0x38]
mov ecx, edi
shr ecx, 0xc
mov eax, 1
shl eax, cl
movzx ecx, word [edx + 0x1a]
test ecx, eax
je 0x4f5a5d
add edx, 8
xor ecx, ecx
mov eax, edi
add eax, dword [edx]
adc ecx, dword [edx + 4]
cmp esi, 0x1000
mov edx, esi
jl 0x4f5a0e
mov edx, 0x1000
lea ebx, [ebp - 0x88]
push ebx
push ecx
mov ecx, dword [ebp + 0x18]
push eax
push edx
mov edx, dword [ebp - 0x28]
lea eax, [edi + edx]
mov edx, dword [0x100b238]
push eax
push ecx
mov ecx, dword [0x1009088]
push edx
lea eax, [ebp - 0x35c]
push eax
call fcn.004f8184
test eax, eax
je 0x4f54d4
mov ecx, dword [ebp - 0x88]
add dword [0x1009978], ecx
adc dword [0x100997c], 0
sub esi, 0x1000
add edi, 0x1000
cmp edi, 0x10000
jb 0x4f59d4
jmp 0x4f5b0a
mov ebx, 1
cmp dword [0x100a6d8], ebx
jne 0x4f5aa4
push esi
push edi
call fcn.004f4994
cmp eax, ebx
jne 0x4f5aa1
mov edx, dword [ebp - 0x84]
add dword [0x1009980], edx
adc dword [0x1009984], 0
jmp 0x4f5b0a
mov ecx, dword [ebp - 0x30]
mov edx, dword [0x100b238]
cmp dword [edx + 0x210], ebx
jne 0x4f5ac8
mov eax, dword [edx + 0x218]
add eax, dword [ecx]
mov ecx, dword [edx + 0x21c]
mov ebx, dword [ebp - 0x30]
adc ecx, dword [ebx + 4]
jmp 0x4f5acd
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea ebx, [ebp - 0x84]
push ebx
push ecx
push eax
mov eax, dword [ebp + 0x18]
push esi
push edi
push eax
push edx
lea ecx, [ebp - 0x35c]
push ecx
mov ecx, dword [0x1009088]
call fcn.004f8184
test eax, eax
je 0x4f54d4
mov edx, dword [ebp - 0x84]
add dword [0x1009978], edx
adc dword [0x100997c], 0
push 0x3e8
lea eax, [ebp - 0x24]
push eax
call fcn.004f30b4
test eax, eax
je 0x4f609b
mov edi, 0x10099a0
xor esi, esi
mov eax, edi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x34], edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f5b35
sub eax, edx
cmp eax, 5
jbe 0x4f5b63
push 0x5c
push 0x10099a0
call fcn.004f8466
mov edi, eax
add esp, 8
cmp edi, esi
jne 0x4f5b5f
mov edi, 0x10099a0
jmp 0x4f5b60
inc edi
mov dword [ebp - 0x34], edi
cmp dword [0x100ab34], esi
je 0x4f5cb7
mov eax, dword [0x100ab14]
mov ecx, dword [0x100ab10]
cmp eax, esi
ja 0x4f5b83
cmp ecx, 1
jbe 0x4f5b8b
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], eax
jmp 0x4f5b95
mov dword [ebp - 0x7c], 1
mov dword [ebp - 0x78], esi
mov ecx, dword [0x1009988]
mov esi, dword [0x100998c]
push 0
add ecx, 1
mov edx, esi
push 0x64
adc edx, 0
push edx
push ecx
call fcn.004f83e2
mov ecx, dword [ebp - 0x7c]
mov edi, eax
mov eax, dword [ebp - 0x78]
push eax
push ecx
mov ebx, edx
push ebx
push edi
call fcn.004f83ee
test edx, edx
jb 0x4f5bdb
ja 0x4f5bd2
cmp eax, 0x64
jbe 0x4f5bdb
mov dword [ebp - 0x28], 0x64
jmp 0x4f5c07
mov ecx, dword [0x100ab14]
test ecx, ecx
ja 0x4f5bf2
mov eax, 1
cmp dword [0x100ab10], eax
jbe 0x4f5bf9
mov eax, dword [0x100ab10]
jmp 0x4f5bfb
xor ecx, ecx
push ecx
push eax
push ebx
push edi
call fcn.004f83ee
mov dword [ebp - 0x28], eax
mov edx, dword [0x1009988]
shrd edx, esi, 4
shr esi, 4
xor edi, edi
cmp esi, edi
ja 0x4f5c2b
jb 0x4f5c21
cmp edx, 1
jae 0x4f5c2b
mov edx, 1
mov dword [ebp - 0x68], edi
jmp 0x4f5c2e
mov dword [ebp - 0x68], esi
mov ecx, dword [0x100ab14]
mov eax, dword [0x100ab10]
shrd eax, ecx, 4
shr ecx, 4
cmp ecx, edi
ja 0x4f5c55
jb 0x4f5c4b
cmp eax, 1
jae 0x4f5c55
mov eax, 1
mov dword [ebp - 0x68], edi
jmp 0x4f5c58
mov dword [ebp - 0x68], ecx
push edx
push eax
call fcn.004f4804
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, edx
shr eax, 6
xor edx, edx
mov ecx, 0x3c
div ecx
mov ecx, dword [0x1009988]
push edx
mov edx, dword [ebp - 0x28]
push eax
mov eax, dword [0x100998c]
push edx
push 9
push 0
push 0xffff
push eax
push ecx
call fcn.004f83e2
push edx
push eax
call fcn.004f7464
push eax
push 0x1001a18
push 0x51a
call fcn.004f6834
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
add esp, 0x18
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x4f5d3c
mov ecx, dword [ebx + 0x5f]
mov ebx, ecx
cmp ecx, 1
ja 0x4f5cd1
mov ebx, 1
mov esi, dword [ebp + 0x10]
inc esi
imul esi, esi, 0x64
xor edx, edx
mov eax, esi
div ebx
cmp eax, 0x64
jbe 0x4f5cea
mov esi, 0x64
jmp 0x4f5cfe
mov ebx, ecx
cmp ecx, 1
ja 0x4f5cf6
mov ebx, 1
mov eax, esi
xor edx, edx
div ebx
mov esi, eax
cmp ecx, 0x100
jbe 0x4f5d26
mov eax, dword [ebp + 0x10]
shr eax, 4
cmp eax, 1
jae 0x4f5d16
mov eax, 1
shr ecx, 4
cmp ecx, 1
jae 0x4f5d23
mov ecx, 1
push eax
jmp 0x4f5d30
mov edx, dword [ebp + 0x10]
shl edx, 6
push edx
shl ecx, 6
push ecx
call fcn.004f4704
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x44], 0
je 0x4f5ddf
push 0x100dc20
call fcn.004f68a4
push eax
call fcn.004f68a4
test eax, eax
jne 0x4f5d62
cmp dword [0x100a020], eax
je 0x4f5d91
mov eax, dword [0x100ab2c]
mov ecx, dword [0x100ab28]
push esi
push 0xc
push eax
push ecx
call fcn.004f7464
push eax
push edi
call fcn.004f4904
push eax
push 0x10019f0
push 0x100dc20
call fcn.004f2914
add esp, 0x14
mov edx, dword [0x100ab2c]
mov eax, dword [0x100ab28]
push esi
push 0xc
push edx
push eax
call fcn.004f7464
push eax
push edi
call fcn.004f4904
push eax
push 0x10019c8
push 0x516
call fcn.004f6834
add esp, 0x14
push edi
call fcn.004f4904
push eax
push 0x1001620
push esi
push 0x10019b4
call fcn.004f24d4
add esp, 0x10
jmp 0x4f5fb9
cmp dword [0x100a354], 0
je 0x4f5e80
push 0x100dc20
call fcn.004f68a4
push eax
call fcn.004f68a4
test eax, eax
jne 0x4f5e08
cmp dword [0x100a020], eax
je 0x4f5e39
mov ecx, dword [0x100ab2c]
mov edx, dword [0x100ab28]
push esi
push 0xc
push ecx
push edx
call fcn.004f7464
push eax
lea eax, [ebp - 0x25c]
push eax
push edi
push 0x1001984
push 0x100dc20
call fcn.004f2914
add esp, 0x18
mov ecx, dword [0x100ab2c]
mov edx, dword [0x100ab28]
push esi
push 0xc
push ecx
push edx
call fcn.004f7464
push eax
lea eax, [ebp - 0x25c]
push eax
push edi
push 0x1001954
push 0x516
call fcn.004f6834
push edi
push 0x1001620
push esi
push 0x10019b4
call fcn.004f24d4
add esp, 0x28
jmp 0x4f5fb9
test ebx, ebx
je 0x4f5f59
cmp byte [ebx + 0xaf], 0x44
jne 0x4f5ed4
mov ecx, dword [0x100997c]
mov edx, dword [0x1009978]
push 0xc
push ecx
push edx
call fcn.004f7464
mov ecx, dword [0x100ab28]
push eax
mov eax, dword [0x100ab2c]
push 0xc
push eax
push ecx
call fcn.004f7464
push eax
push edi
push 0x1001938
push 0x100dc20
call fcn.004f2914
add esp, 0x14
jmp 0x4f5f59
cmp dword [ebp - 0x60], 0
je 0x4f5f03
push 0x10018f0
push 0x100dc20
mov dword [ebp - 0x60], 0
call fcn.004f2914
push edi
push 0x10018e8
push 0x100dc20
call fcn.004f2914
add esp, 0x14
mov eax, 0x10624dd3
mul dword [ebp - 0x64]
mov eax, edx
shr eax, 6
xor edx, edx
mov ecx, 0x3c
div ecx
push edx
mov edx, dword [0x100997c]
push eax
mov eax, dword [0x1009978]
push esi
push 0xc
push edx
push eax
call fcn.004f7464
mov ecx, dword [0x100ab2c]
mov edx, dword [0x100ab28]
push eax
push 0xc
push ecx
push edx
call fcn.004f7464
push eax
push 0x10018ac
push 0x100dc20
call fcn.004f2914
add esp, 0x1c
cmp dword [0x100ab34], 0
push 0x1001620
je 0x4f5f6d
mov eax, dword [ebp - 0x28]
push eax
jmp 0x4f5f6e
push esi
push 0x1001898
call fcn.004f24d4
mov ecx, dword [0x100997c]
mov edx, dword [0x1009978]
add esp, 0xc
push esi
push 0xc
push ecx
push edx
call fcn.004f7464
mov ecx, dword [0x100ab28]
push eax
mov eax, dword [0x100ab2c]
push 0xc
push eax
push ecx
call fcn.004f7464
push eax
push 0x1001874
push 0x516
call fcn.004f6834
add esp, 0x14
xor esi, esi
cmp dword [0x100ab34], esi
je 0x4f6026
mov eax, dword [0x100ab14]
mov ecx, dword [0x100ab10]
shrd ecx, eax, 4
shr eax, 4
cmp eax, esi
ja 0x4f5fea
jb 0x4f5fe0
cmp ecx, 1
jae 0x4f5fea
mov edx, 1
mov dword [ebp - 0x68], esi
jmp 0x4f5fef
mov edx, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [0x100998c]
mov ecx, dword [0x1009988]
shrd ecx, eax, 4
shr eax, 4
cmp eax, esi
ja 0x4f6016
jb 0x4f600c
cmp ecx, 1
jae 0x4f6016
mov ecx, 1
mov dword [ebp - 0x68], esi
jmp 0x4f6019
mov dword [ebp - 0x68], eax
push esi
push edx
push ecx
push 0x3f9
call fcn.004f6864
cmp ebx, esi
je 0x4f6080
mov eax, dword [ebx + 0x5f]
cmp eax, 0x100
jbe 0x4f606b
shr eax, 4
mov ecx, 1
cmp eax, 1
jb 0x4f6043
mov ecx, eax
mov eax, dword [ebp + 0x10]
shr eax, 4
cmp eax, 1
jae 0x4f6053
mov eax, 1
mov edx, dword [ebp - 0x3c]
push esi
push ecx
push eax
push edx
call fcn.004f6864
push 0x100dc00
call fcn.004f68a4
jmp 0x4f609b
mov ecx, dword [ebp - 0x3c]
push esi
shl eax, 6
push eax
mov eax, dword [ebp + 0x10]
shl eax, 6
push eax
push ecx
call fcn.004f6864
push 0x100dc00
call fcn.004f68a4
jmp 0x4f609b
mov eax, dword [0x1009abc]
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.004f49d4
mov eax, 1
add dword [ebp + 0x10], eax
add dword [0x1009988], eax
adc dword [0x100998c], 0
jmp 0x4f51a4
push 0x100185c
push 0
push 0x486
jmp 0x4f54c7
push 0x1001518
call fcn.004f2964
mov ecx, dword [ebp + 0x18]
mov edx, dword [0x100b238]
add esp, 4
push ecx
mov ecx, dword [0x1009088]
push edx
lea eax, [ebp - 0x35c]
push eax
call fcn.004f8234
test eax, eax
jne 0x4f6109
push eax
push 0x1001834
call fcn.004f2964
add esp, 8
mov dword [ebp - 0x40], 1
mov ebx, dword [ebp - 0x44]
test ebx, ebx
je 0x4f6285
mov ecx, dword [0x100ab2c]
mov edx, dword [0x100ab28]
push 0xc
push ecx
push edx
call fcn.004f7464
push eax
push 0x10099a0
call fcn.004f4904
push eax
push 0x1001818
call fcn.004f2964
add esp, 0xc
push 0x100dc20
call fcn.004f68a4
push eax
call fcn.004f68a4
test eax, eax
je 0x4f619c
push 0x100dc00
call fcn.004f68a4
push eax
call fcn.004f68a4
test eax, eax
jne 0x4f619c
mov eax, dword [0x100ab2c]
mov ecx, dword [0x100ab28]
push 0xc
push eax
push ecx
call fcn.004f7464
push eax
push 0x10099a0
call fcn.004f4904
push eax
push 0x10017fc
push 0x100dc20
call fcn.004f2914
add esp, 0x10
mov eax, dword [0x100ab08]
mov ecx, dword [0x100ab0c]
mov edx, eax
or edx, ecx
je 0x4f61bc
push ecx
push eax
push 0x10017d4
call fcn.004f2964
add esp, 0xc
push 0x1001518
call fcn.004f2964
mov eax, dword [0x100ab2c]
mov ecx, dword [0x100ab28]
add esp, 4
push 0xc
push eax
push ecx
call fcn.004f7464
push eax
push 0x10017c0
push 0x516
call fcn.004f6834
push 0x1001620
push 0x10017ac
call fcn.004f24d4
add esp, 0x14
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x4f6235
mov eax, dword [edi + 0x5f]
shr eax, 4
mov ecx, 1
cmp eax, 1
jb 0x4f6218
mov ecx, eax
mov eax, dword [ebp + 0x10]
shr eax, 4
cmp eax, 1
jae 0x4f6228
mov eax, 1
push 1
push ecx
mov ecx, dword [ebp - 0x3c]
push eax
push ecx
call fcn.004f6864
push 0x64
call fcn.004f2ca4
call fcn.004f3084
mov edx, eax
sub edx, dword [ebp - 0xc0]
mov eax, 0x10624dd3
mul edx
mov ecx, edx
shr ecx, 6
mov eax, 0x88888889
mul ecx
shr edx, 5
mov eax, edx
shl eax, 4
sub eax, edx
add eax, eax
add eax, eax
sub ecx, eax
cmp dword [0x100ab34], 0
push ecx
push edx
je 0x4f644d
push 0x1001794
jmp 0x4f6452
cmp dword [0x100a354], 0
jne 0x4f61ff
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x4f63ed
cmp byte [edi + 0xaf], 0x44
jne 0x4f62e7
mov edx, dword [0x100997c]
mov eax, dword [0x1009978]
push 0xc
push edx
push eax
call fcn.004f7464
mov ecx, dword [0x100ab2c]
mov edx, dword [0x100ab28]
push eax
push 0xc
push ecx
push edx
call fcn.004f7464
push eax
mov eax, dword [ebp - 0x34]
push eax
push 0x1001938
call fcn.004f2964
add esp, 0x10
jmp 0x4f63ed
cmp dword [0x100ab34], 0
je 0x4f639a
mov ecx, dword [0x1009988]
mov edx, dword [0x100998c]
push 0
add ecx, 1
push 0x64
adc edx, 0
push edx
push ecx
call fcn.004f83e2
mov ecx, dword [0x100ab14]
push ecx
mov ecx, dword [0x100ab10]
push ecx
push edx
push eax
call fcn.004f83ee
test edx, edx
jb 0x4f633a
ja 0x4f6331
cmp eax, 0x64
jbe 0x4f633a
mov ecx, 0x64
xor esi, esi
jmp 0x4f633e
mov ecx, eax
mov esi, edx
mov eax, dword [ebp + 0x10]
inc eax
imul eax, eax, 0x64
xor edx, edx
div dword [edi + 0x5f]
cmp eax, 0x64
jbe 0x4f6354
mov eax, 0x64
mov edx, dword [0x100997c]
push esi
push ecx
push eax
mov eax, dword [0x1009978]
push 0xc
push edx
push eax
call fcn.004f7464
mov ecx, dword [0x100ab2c]
mov edx, dword [0x100ab28]
push eax
push 0xc
push ecx
push edx
call fcn.004f7464
push eax
mov eax, dword [ebp - 0x34]
push eax
push 0x1001758
push 0x100dc20
call fcn.004f2914
add esp, 0x20
jmp 0x4f63ed
mov eax, dword [ebp + 0x10]
inc eax
imul eax, eax, 0x64
xor edx, edx
div dword [edi + 0x5f]
cmp eax, 0x64
jbe 0x4f63b0
mov eax, 0x64
mov ecx, dword [0x100997c]
mov edx, dword [0x1009978]
push eax
push 0xc
push ecx
push edx
call fcn.004f7464
mov ecx, dword [0x100ab28]
push eax
mov eax, dword [0x100ab2c]
push 0xc
push eax
push ecx
call fcn.004f7464
mov edx, dword [ebp - 0x34]
push eax
push edx
push 0x1001730
call fcn.004f2964
add esp, 0x14
mov eax, dword [0x100997c]
mov ecx, dword [0x1009978]
push 0xc
push eax
push ecx
call fcn.004f7464
mov edx, dword [0x100ab2c]
push eax
mov eax, dword [0x100ab28]
push 0xc
push edx
push eax
call fcn.004f7464
push eax
push 0x1001cfc
push 0x516
call fcn.004f6834
add esp, 0x10
cmp dword [0x100ab34], 0
jne 0x4f6202
push 0x1001620
push 0x100171c
call fcn.004f24d4
add esp, 8
jmp 0x4f6202
push 0x1001700
call fcn.004f2964
add esp, 0xc
test ebx, ebx
jne 0x4f54de
cmp dword [0x100a354], ebx
jne 0x4f54de
mov ecx, dword [0x1009ab8]
push ecx
call fcn.004f2a14
cmp eax, 1
je 0x4f55cc
mov edx, dword [0x1009ab8]
push edx
jmp 0x4f55b9
push eax
push 0x10099a0
push 0x10016f4
push esi
push 0x50a
push 0x1001664
call fcn.004f3194
add esp, 0x18
jmp 0x4f54d4