Function at 0x401f90
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by fnv-1a hash
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
mov esi, dword [0x513bc8]
push edi
test esi, esi
jne 0x40208e
mov eax, dword fs:[0x30]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], 0x53b2070f
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edi, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edi
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x30]
test ebx, ebx
je 0x401ffb
add eax, 0xfffffff8
mov edx, 0x811c9dc5
movzx eax, ax
shr eax, 1
lea esi, [ecx + eax*2]
cmp ecx, esi
je 0x401ff7
movsx eax, byte [ecx]
add ecx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jne 0x401fe5
cmp edx, ebx
jne 0x402068
mov ebx, dword [edi + 0x18]
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0x18], eax
cmp eax, ebx
je 0x402065
mov esi, dword [eax + 0x18]
test esi, esi
je 0x402065
mov eax, dword [eax + 0x20]
lea edi, [eax + esi*4]
add edi, ebx
mov eax, dword [edi - 4]
lea edi, [edi - 4]
add eax, ebx
dec esi
mov edx, 0x811c9dc5
mov cl, byte [eax]
inc eax
test cl, cl
je 0x402055
nop word [eax + eax]
movsx ecx, cl
lea eax, [eax + 1]
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [eax - 1]
test cl, cl
jne 0x402040
cmp edx, dword [ebp - 0xc]
je 0x402324
test esi, esi
jne 0x402025
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 8]
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x14]
je 0x40207e
cmp dword [edi + 0x18], 0
jne 0x401fc7
xor esi, esi
mov dword [0x513bc8], esi
test esi, esi
je 0x40231d
mov byte [ebp - 0x2c], 0x6f
mov al, 1
xor al, byte [ebp - 0x2c]
mov bl, 3
mov ah, bl
mov byte [ebp - 0x2b], al
mov al, byte [ebp - 0x2c]
mov dl, 0xb
mov bh, ah
mov byte [ebp - 1], ah
mov dh, dl
mov byte [ebp - 0x22], 0
xor dl, al
mov byte [ebp - 0x22], 0
xor bl, al
mov byte [ebp - 0x29], dl
xor ah, al
mov byte [ebp - 0x28], bl
xor dh, al
mov byte [ebp - 0x27], ah
xor bh, al
mov byte [ebp - 0x25], dh
mov cl, 0x1b
mov byte [ebp - 0x24], bh
xor cl, al
mov ch, 0x41
xor ch, al
mov byte [ebp - 0x2a], cl
mov al, byte [ebp - 1]
xor al, byte [ebp - 0x2c]
mov byte [ebp - 0x23], al
lea eax, [ebp - 0x2b]
push eax
mov byte [ebp - 0x26], ch
call esi
mov ebx, eax
mov dword [ebp - 0x20], ebx
test ebx, ebx
je 0x40231d
mov ecx, dword [0x513bd8]
test ecx, ecx
jne 0x4021e7
mov eax, dword fs:[0x30]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], 0xf8f45725
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edi, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edi
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x30]
test ebx, ebx
je 0x402157
add eax, 0xfffffff8
mov edx, 0x811c9dc5
movzx eax, ax
shr eax, 1
lea esi, [ecx + eax*2]
cmp ecx, esi
je 0x402153
movsx eax, byte [ecx]
add ecx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jne 0x402141
cmp edx, ebx
jne 0x4021be
mov ebx, dword [edi + 0x18]
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x18], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x4021bb
mov esi, dword [eax + 0x18]
test esi, esi
je 0x4021bb
mov eax, dword [eax + 0x20]
lea edi, [eax + esi*4]
add edi, ebx
mov ecx, dword [edi - 4]
lea edi, [edi - 4]
add ecx, ebx
dec esi
mov edx, 0x811c9dc5
mov al, byte [ecx]
inc ecx
test al, al
je 0x4021ab
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x402196
cmp edx, dword [ebp - 0x14]
je 0x402364
test esi, esi
jne 0x402181
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 8]
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0xc]
je 0x4021d4
cmp dword [edi + 0x18], 0
jne 0x402123
xor ecx, ecx
mov ebx, dword [ebp - 0x20]
mov dword [0x513bd8], ecx
test ecx, ecx
je 0x40231d
movaps xmm0, xmmword [0x5058d0]
xor edx, edx
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0x362c102a
mov dword [ebp - 0x30], 0x202521
mov al, byte [ebp - 0x44]
xor byte [ebp + edx - 0x43], al
inc edx
cmp edx, 0x16
jb 0x402202
lea eax, [ebp - 0x43]
mov byte [ebp - 0x2d], 0
push eax
push ebx
call ecx
mov ecx, dword [0x513bd0]
mov ebx, eax
mov dword [ebp - 0x18], ebx
test ecx, ecx
jne 0x402312
mov ecx, dword fs:[0x30]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], 0x9bc5a608
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
mov edi, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edi
nop
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x30]
test ebx, ebx
je 0x402286
add eax, 0xfffffff8
mov edx, 0x811c9dc5
movzx eax, ax
shr eax, 1
lea esi, [ecx + eax*2]
cmp ecx, esi
je 0x402282
nop
movsx eax, byte [ecx]
add ecx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jne 0x402270
cmp edx, ebx
jne 0x4022ed
mov ebx, dword [edi + 0x18]
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [eax + ebx + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + ebx]
mov dword [ebp - 0x20], eax
cmp eax, ebx
je 0x4022ea
mov esi, dword [eax + 0x18]
test esi, esi
je 0x4022ea
mov eax, dword [eax + 0x20]
lea edi, [eax + esi*4]
add edi, ebx
mov ecx, dword [edi - 4]
lea edi, [edi - 4]
add ecx, ebx
dec esi
mov edx, 0x811c9dc5
mov al, byte [ecx]
inc ecx
test al, al
je 0x4022da
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4022c5
cmp edx, dword [ebp - 0x14]
je 0x4023a4
test esi, esi
jne 0x4022b0
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 8]
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0xc]
je 0x402303
cmp dword [edi + 0x18], 0
jne 0x402250
xor ecx, ecx
mov ebx, dword [ebp - 0x18]
mov dword [0x513bd0], ecx
test ecx, ecx
je 0x40231d
push 0
push 0
push 0x11
call ecx
push eax
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov esi, dword [eax + ebx]
add esi, ebx
cmp esi, edx
jbe 0x402080
mov eax, dword [ebp - 0x1c]
add eax, edx
cmp esi, eax
jae 0x402080
mov edi, dword [ebp - 0x14]
mov ebx, 0x811c9dc5
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
jmp 0x402068
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + ebx]
add ecx, ebx
cmp ecx, edx
jbe 0x4021d6
mov eax, dword [ebp - 0x18]
add eax, edx
cmp ecx, eax
jae 0x4021d6
mov edi, dword [ebp - 0xc]
mov ebx, 0x811c9dc5
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], ebx
jmp 0x4021be
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + ebx]
add ecx, ebx
cmp ecx, edx
jbe 0x402305
mov eax, dword [ebp - 0x1c]
add eax, edx
cmp ecx, eax
jae 0x402305
mov edi, dword [ebp - 0xc]
mov ebx, 0x811c9dc5
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], ebx
jmp 0x4022ed