Function at 0x435835
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x984
mov eax, dword [0x4e2040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4e7a88]
push ebx
xor ebx, ebx
mov dword [ebp - 0x94c], edx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
push esi
mov esi, ecx
mov dword [ebp - 0x92c], esi
push edi
test eax, eax
jne 0x435962
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 - 0x944], eax
mov dword [ebp - 0x93c], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [ebp - 0x938], ebx
cmp ebx, edx
je 0x435938
mov edi, dword [ebx + 0x18]
test edi, edi
je 0x435938
mov eax, dword [ebx + 0x20]
lea eax, [eax + edi*4]
add eax, edx
sub eax, 4
mov ecx, 0xa26696e4
dec edi
mov dword [ebp - 0x934], ecx
mov dword [ebp - 0x940], eax
mov esi, dword [eax]
add esi, edx
mov cl, byte [esi]
inc esi
test cl, cl
je 0x43592e
mov ebx, dword [ebp - 0x934]
movsx eax, cl
xor eax, ebx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
mov cl, byte [esi]
imul ebx, eax, 0x1000193
inc esi
test cl, cl
jne 0x4358e0
mov dword [ebp - 0x934], ebx
cmp dword [ebp - 0x934], 0xe1735fcb
mov ebx, dword [ebp - 0x938]
je 0x4359d6
mov eax, dword [ebp - 0x940]
test edi, edi
jne 0x4358ba
mov ecx, dword [ebp - 0x93c]
mov eax, dword [ecx]
xor ebx, ebx
mov ecx, eax
mov dword [ebp - 0x93c], eax
cmp eax, dword [ebp - 0x944]
je 0x435955
cmp dword [ecx + 0x18], ebx
jne 0x43588d
mov eax, ebx
mov esi, dword [ebp - 0x92c]
mov dword [0x4e7a88], eax
push esi
call eax
push 0x18
pop edi
test al, 0x10
je 0x4359f2
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
lea edx, [esi + 2]
mov dword [ebp - 0x28], ebx
mov dword [ecx], esi
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x435982
sub esi, edx
lea edx, [ebp - 0x30]
sar esi, 1
mov dword [ecx + 4], esi
lea ecx, [ebp - 0x24]
call fcn.004380d1
mov esi, dword [ebp - 0x30]
pop ecx
pop ecx
test esi, esi
je 0x435a17
mov edi, dword [ebp - 0x2c]
push 0x18
pop ebx
cmp esi, edi
je 0x4359c2
mov ecx, esi
call fcn.0040c4e8
add esi, ebx
cmp esi, edi
jne 0x4359b2
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov ecx, esi
sub eax, esi
cdq
idiv ebx
imul edx, eax, 0x18
call fcn.0040d759
jmp 0x435a17
mov eax, dword [ebx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
xor ebx, ebx
jmp 0x435957
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
je 0x435a07
push esi
mov ecx, eax
call fcn.0040c1e2
add dword [ebp - 0x20], edi
jmp 0x435a17
lea ecx, [ebp - 0x92c]
push ecx
push eax
lea ecx, [ebp - 0x24]
call fcn.0043abbb
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x950], eax
cmp ebx, eax
je 0x436046
mov byte [ebp - 0x944], 0
mov byte [ebp - 0x940], 0
cmp dword [ebx + 0x14], 7
mov eax, ebx
jbe 0x435a43
mov eax, dword [ebx]
push dword [ebp - 0x944]
lea ecx, [ebp - 0x968]
push dword [ebx + 0x10]
push eax
call fcn.0040ea8a
mov eax, dword [ebp - 0x958]
lea ecx, [ebp - 0x968]
add esp, 0xc
cmp dword [ebp - 0x954], 7
cmova ecx, dword [ebp - 0x968]
lea esi, [ecx + eax*2]
mov edx, esi
call fcn.0040876e
push dword [ebp - 0x940]
sub esi, eax
lea ecx, [ebp - 0x6c]
sar esi, 1
push esi
push eax
call fcn.0040ea8a
add esp, 0xc
lea ecx, [ebp - 0x968]
call fcn.0040c4e8
push 0xffffffffffffffff
push ecx
push dword [ebp - 0x94c]
mov ecx, ebx
call fcn.004176fe
push eax
lea eax, [ebp - 0x968]
mov ecx, ebx
push eax
call fcn.00417664
push eax
lea ecx, [ebp - 0xa4]
call fcn.0040c17b
lea ecx, [ebp - 0x968]
call fcn.0040c4e8
xor eax, eax
lea edi, [ebp - 0x3c]
stosd dword es:[edi], eax
push 8
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
and dword [ebp - 0x2c], 0
lea edi, [ebp - 0x8c]
rep stosd dword es:[edi], eax
mov word [ebp - 0x3c], ax
lea ecx, [ebp - 0xa4]
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x28], 7
push eax
call fcn.00408987
push 8
pop ecx
xor eax, eax
lea edi, [ebp - 0xc4]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0xa4]
call fcn.00408a28
jmp 0x435ff2
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x3c]
call fcn.004087e3
push 0xffffffffffffffff
push dword [0x4e5ce8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [ebp - 0x58], 7
lea eax, [ebp - 0x6c]
push dword [ebp - 0x5c]
cmova eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x88]
push eax
call fcn.0042b5dd
test eax, eax
je 0x435b9b
lea eax, [ebp - 0x968]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0042b5b0
cmp dword [eax + 0x14], 0xf
jbe 0x435b84
mov eax, dword [eax]
mov ecx, eax
call fcn.00414d6b
lea ecx, [ebp - 0x968]
call fcn.0040bd96
jmp 0x435fdb
cmp dword [ebx + 0x14], 7
mov ecx, ebx
jbe 0x435ba5
mov ecx, dword [ebx]
call fcn.004394cc
xor eax, eax
lea edi, [ebp - 0x18]
cmp dword [ebx + 0x14], 7
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, ebx
jbe 0x435bbd
mov eax, dword [ebx]
push 0
push eax
lea ecx, [ebp - 0x18]
call fcn.00416912
cmp byte [ebp - 0x18], 0
jne 0x435cf0
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x435fe7
mov eax, dword [0x4e5c5c]
test eax, eax
jne 0x435cd8
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x93c], ecx
cmp ecx, esi
je 0x435ca8
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x435ca8
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
sub ecx, 4
mov dword [ebp - 0x938], 0xac2cb299
dec edx
mov dword [ebp - 0x92c], ecx
mov dword [ebp - 0x934], edx
mov edi, dword [ecx]
add edi, esi
mov dl, byte [edi]
inc edi
mov byte [ebp - 0x92d], dl
test dl, dl
mov edx, dword [ebp - 0x934]
je 0x435ca0
mov cl, byte [ebp - 0x92d]
mov edx, dword [ebp - 0x938]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x435c60
cmp edx, 0xc312cdc0
je 0x435caf
mov edx, dword [ebp - 0x934]
mov ecx, dword [ebp - 0x92c]
test edx, edx
jne 0x435c23
mov eax, dword [eax]
jmp 0x435bf6
mov edx, dword [ebp - 0x93c]
mov ecx, dword [ebp - 0x934]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + esi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + esi]
add eax, esi
mov dword [0x4e5c5c], eax
push ecx
call eax
and dword [ebp - 0x14], 0
xorps xmm0, xmm0
mov byte [ebp - 0x18], 0
movlpd qword [ebp - 0x10], xmm0
jmp 0x435fe7
push dword [ebp - 0x10]
xor eax, eax
lea edi, [ebp - 0x54]
stosd dword es:[edi], eax
push ecx
lea ecx, [ebp - 0x54]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
and dword [ebp - 0x44], 0
and dword [ebp - 0x40], 0
call fcn.004109bd
cmp dword [ebp - 0x40], 0xf
lea eax, [ebp - 0x54]
push dword [ebp - 0x10]
cmova eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x18]
push eax
call fcn.00416d4b
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x948], eax
test edi, edi
je 0x435e47
mov ecx, dword [0x4e5c5c]
test ecx, ecx
jne 0x435e33
mov ecx, dword fs:[0x30]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x93c], ecx
cmp ecx, esi
je 0x435e02
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x435e02
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
sub ecx, 4
mov dword [ebp - 0x938], 0xac2cb299
dec edx
mov dword [ebp - 0x92c], ecx
mov dword [ebp - 0x934], edx
mov edi, dword [ecx]
add edi, esi
mov dl, byte [edi]
inc edi
mov byte [ebp - 0x92d], dl
test dl, dl
mov edx, dword [ebp - 0x934]
je 0x435dfa
mov cl, byte [ebp - 0x92d]
mov edx, dword [ebp - 0x938]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x435dba
cmp edx, 0xc312cdc0
je 0x435e09
mov edx, dword [ebp - 0x934]
mov ecx, dword [ebp - 0x92c]
test edx, edx
jne 0x435d7d
mov eax, dword [eax]
jmp 0x435d50
mov edx, dword [ebp - 0x93c]
mov ecx, dword [ebp - 0x934]
mov edi, dword [ebp - 0x14]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + esi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + esi]
add ecx, esi
mov dword [0x4e5c5c], ecx
push edi
call ecx
xor edi, edi
mov byte [ebp - 0x18], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], edi
movlpd qword [ebp - 0x10], xmm0
and dword [ebp - 0x938], 0
lea eax, [ebp - 0x980]
push eax
lea ecx, [ebp - 0xa4]
call fcn.0042b5b0
cmp dword [eax + 0x14], 0xf
jbe 0x435e68
mov eax, dword [eax]
push 0xa
mov edx, eax
lea ecx, [ebp - 0x928]
call fcn.00413f1b
pop ecx
lea ecx, [ebp - 0x980]
mov esi, eax
call fcn.0040bd96
test esi, esi
jne 0x435ebd
cmp dword [ebp - 0x40], 0xf
lea eax, [ebp - 0x938]
push eax
push dword [ebp - 0x948]
lea edx, [ebp - 0x54]
cmova edx, dword [ebp - 0x54]
lea ecx, [ebp - 0x928]
call fcn.0041458d
pop ecx
pop ecx
test eax, eax
jne 0x435ebd
lea ecx, [ebp - 0x928]
call fcn.004149ec
lea ecx, [ebp - 0x54]
call fcn.0040bd96
test edi, edi
je 0x435fdb
mov eax, dword [0x4e5c5c]
test eax, eax
jne 0x435fc8
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x92c], ecx
cmp ecx, esi
je 0x435f98
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x435f98
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
sub ecx, 4
mov dword [ebp - 0x948], 0xac2cb299
dec edx
mov dword [ebp - 0x938], ecx
mov dword [ebp - 0x934], edx
mov edi, dword [ecx]
add edi, esi
mov dl, byte [edi]
inc edi
mov byte [ebp - 0x92d], dl
test dl, dl
mov edx, dword [ebp - 0x934]
je 0x435f90
mov cl, byte [ebp - 0x92d]
mov edx, dword [ebp - 0x948]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x435f50
cmp edx, 0xc312cdc0
je 0x435f9f
mov edx, dword [ebp - 0x934]
mov ecx, dword [ebp - 0x938]
test edx, edx
jne 0x435f13
mov eax, dword [eax]
jmp 0x435ee6
mov edx, dword [ebp - 0x92c]
mov ecx, dword [ebp - 0x934]
mov edi, dword [ebp - 0x14]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + esi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + esi]
add eax, esi
mov dword [0x4e5c5c], eax
push edi
call eax
and dword [ebp - 0x14], 0
xorps xmm0, xmm0
mov byte [ebp - 0x18], 0
movlpd qword [ebp - 0x10], xmm0
push dword [0x4e5ce8]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea ecx, [ebp - 0x8c]
call fcn.0040be3a
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0xc4]
jne 0x435b32
lea ecx, [ebp - 0xc0]
call fcn.0040c4e8
lea ecx, [ebp - 0x88]
call fcn.0040c4e8
lea ecx, [ebp - 0x3c]
call fcn.0040c4e8
lea ecx, [ebp - 0xa4]
call fcn.0040c4e8
lea ecx, [ebp - 0x6c]
call fcn.0040c4e8
push 0x18
pop eax
add ebx, eax
cmp ebx, dword [ebp - 0x950]
jne 0x435a39
lea ecx, [ebp - 0x24]
call fcn.0040c3f8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b0ce6
leave
ret