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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28c
mov eax, dword [0x4e2040]
xor eax, esp
mov dword [esp + 0x288], eax
push ebx
mov ebx, ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], ebx
push esi
push edi
test ebx, ebx
je 0x437dbc
mov eax, dword [0x4e7a28]
test eax, eax
jne 0x437231
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x24], ebx
cmp ebx, edx
je 0x43720e
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x43720e
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0xe3cf322f
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437206
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x4371c0
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x17769548
mov ebx, dword [esp + 0x24]
je 0x4379a2
mov eax, dword [esp + 0x18]
test esi, esi
jne 0x4371a0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x1c]
je 0x437226
cmp dword [ecx + 0x18], 0
jne 0x43717d
xor eax, eax
mov ebx, dword [esp + 0x34]
mov dword [0x4e7a28], eax
push ebx
call eax
test eax, eax
je 0x437dbc
call fcn.00437dd1
mov esi, eax
cmp byte [esi + 0x18], 0
je 0x437265
push 0xb149dd95
push 0xbde7e38b
push 0
push 0xc
mov ecx, esi
call fcn.00407f3c
add esp, 0x10
mov byte [esi + 0x18], 0
push esi
push ebx
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
jne 0x437dbc
push 0x250
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004b21c0
add esp, 0xc
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
call fcn.0041a29f
mov esi, eax
mov dword [esp + 0x38], esi
test esi, esi
je 0x437db5
mov eax, dword [0x4e6d6c]
test eax, eax
jne 0x437381
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x1c], ebx
cmp ebx, edx
je 0x43735a
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x43735a
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x8fc5a5ee
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437352
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x43730c
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0xead4ace0
mov ebx, dword [esp + 0x1c]
je 0x4379bc
mov eax, dword [esp + 0x24]
test esi, esi
jne 0x4372ec
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
je 0x437372
cmp dword [ecx + 0x18], 0
jne 0x4372c9
xor eax, eax
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov dword [0x4e6d6c], eax
push ebx
push esi
call eax
mov eax, dword [0x4e7e98]
test eax, eax
jne 0x43745e
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x1c], ebx
cmp ebx, edx
je 0x43743b
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x43743b
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0xdca3ef8a
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437433
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x4373ed
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x50c2aee8
mov ebx, dword [esp + 0x1c]
je 0x4379d6
mov eax, dword [esp + 0x24]
test esi, esi
jne 0x4373cd
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
je 0x437453
cmp dword [ecx + 0x18], 0
jne 0x4373aa
xor eax, eax
mov esi, dword [esp + 0x38]
mov dword [0x4e7e98], eax
push 0x4d15c8
push esi
call eax
mov eax, dword [0x4e6d84]
test eax, eax
jne 0x43753f
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x1c], ebx
cmp ebx, edx
je 0x43751c
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x43751c
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0xa185f231
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437514
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x4374ce
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x67fb75dd
mov ebx, dword [esp + 0x1c]
je 0x4379f0
mov eax, dword [esp + 0x24]
test esi, esi
jne 0x4374ae
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
je 0x437534
cmp dword [ecx + 0x18], 0
jne 0x43748b
xor eax, eax
mov esi, dword [esp + 0x38]
mov dword [0x4e6d84], eax
lea ecx, [esp + 0x40]
push ecx
push esi
call eax
mov dword [esp + 0x24], eax
cmp eax, 0xffffffff
je 0x437dac
push 0x2e
pop ebx
mov eax, dword [0x4e6d74]
test eax, eax
jne 0x437633
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x1c], ebx
cmp ebx, edx
je 0x43760d
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x43760d
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0xd5c901fc
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437605
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x4375bf
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x734443a1
mov ebx, dword [esp + 0x1c]
je 0x437a0a
mov eax, dword [esp + 0x18]
test esi, esi
jne 0x43759f
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x20]
je 0x437625
cmp dword [ecx + 0x18], 0
jne 0x43757c
xor eax, eax
mov esi, dword [esp + 0x38]
push 0x2e
mov dword [0x4e6d74], eax
pop ebx
lea ecx, [esp + 0x40]
push ecx
push dword [esp + 0x28]
call eax
test eax, eax
je 0x437cdc
cmp word [esp + 0x6c], bx
jne 0x437658
cmp word [esp + 0x6e], bx
je 0x437557
cmp word [esp + 0x6e], 0
je 0x437557
mov eax, dword [0x4e75c8]
test eax, eax
jne 0x43773d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x20], ebx
cmp ebx, edx
je 0x43771a
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x43771a
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x3a10c65c
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437712
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x4376cc
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x12c1e1b8
mov ebx, dword [esp + 0x20]
je 0x437a24
mov eax, dword [esp + 0x1c]
test esi, esi
jne 0x4376ac
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
je 0x437732
cmp dword [ecx + 0x18], 0
jne 0x437689
xor eax, eax
mov esi, dword [esp + 0x38]
mov dword [0x4e75c8], eax
lea ecx, [esp + 0x6c]
push ecx
push dword [esp + 0x38]
push 0x4d1660
push esi
call eax
add esp, 0x10
test byte [esp + 0x40], 0x10
je 0x437a72
mov edi, dword [0x4e7a70]
test edi, edi
jne 0x437837
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x20], ebx
cmp ebx, edx
je 0x437813
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x437813
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x3a38c2a5
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x43780b
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x4377c5
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x444eb8a4
mov ebx, dword [esp + 0x20]
je 0x437a3e
mov eax, dword [esp + 0x1c]
test esi, esi
jne 0x4377a5
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
je 0x43782b
cmp dword [ecx + 0x18], 0
jne 0x437782
xor edi, edi
mov esi, dword [esp + 0x38]
mov dword [0x4e7a70], edi
call fcn.00437e66
mov ebx, eax
cmp byte [ebx + 0x32], 0
je 0x437860
push 0xcf47b51d
push 0x415379d7
push 0
push 0x19
mov ecx, ebx
call fcn.00407f3c
add esp, 0x10
mov byte [ebx + 0x32], 0
push ebx
push esi
call edi
test eax, eax
je 0x437992
mov ebx, 0x4e61f8
mov dword [esp + 0x18], ebx
mov eax, dword [ebx]
mov dword [esp + 0x30], eax
mov eax, dword [0x4e6d5c]
test eax, eax
jne 0x437958
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x20], ebx
cmp ebx, edx
je 0x437931
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x437931
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x6a0d6bba
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437929
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x4378e3
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0xfedd9bae
mov ebx, dword [esp + 0x20]
je 0x437a58
mov eax, dword [esp + 0x1c]
test esi, esi
jne 0x4378c3
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x2c]
je 0x437949
cmp dword [ecx + 0x18], 0
jne 0x4378a0
xor eax, eax
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
mov dword [0x4e6d5c], eax
push dword [esp + 0x30]
push esi
call eax
test eax, eax
je 0x43797f
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x38]
push eax
call fcn.00437f5b
mov byte [0x4e5d2b], 1
mov byte [0x4e5cff], 1
add ebx, 4
mov dword [esp + 0x18], ebx
cmp ebx, 0x4e6280
jne 0x437875
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.00437129
jmp 0x437554
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x437228
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x437374
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x437455
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x437536
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x437627
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x437734
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov edi, dword [eax + edx]
add edi, edx
jmp 0x43782d
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x43794b
mov edi, dword [0x4e7620]
test edi, edi
jne 0x437b4d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x30], ebx
cmp ebx, edx
je 0x437b29
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x437b29
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x672b86cb
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437b21
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x437adb
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x71acdd65
mov ebx, dword [esp + 0x30]
je 0x437ca8
mov eax, dword [esp + 0x2c]
test esi, esi
jne 0x437abb
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x20]
je 0x437b41
cmp dword [ecx + 0x18], 0
jne 0x437a98
xor edi, edi
mov esi, dword [esp + 0x38]
mov dword [0x4e7620], edi
call fcn.00437f92
mov ebx, eax
cmp byte [ebx + 0x16], 0
je 0x437b76
push 0xdd8fb553
push 0x478baf09
push 0
push 0xb
mov ecx, ebx
call fcn.00407f3c
add esp, 0x10
mov byte [ebx + 0x16], 0
push ebx
push esi
call edi
test eax, eax
jne 0x437c95
mov edi, dword [0x4e6d88]
test edi, edi
jne 0x437c5d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov ebx, dword [eax + edx + 0x78]
add ebx, edx
mov dword [esp + 0x30], ebx
cmp ebx, edx
je 0x437c39
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x437c39
mov eax, dword [ebx + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x35b74ae8
dec esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x437c31
mov ebx, dword [esp + 0x10]
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 [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x437beb
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x8cc2fcbd
mov ebx, dword [esp + 0x30]
je 0x437cc2
mov eax, dword [esp + 0x2c]
test esi, esi
jne 0x437bcb
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x20]
je 0x437c51
cmp dword [ecx + 0x18], 0
jne 0x437ba8
xor edi, edi
mov esi, dword [esp + 0x38]
mov dword [0x4e6d88], edi
call fcn.0043802c
mov ebx, eax
cmp byte [ebx + 0x16], 0
je 0x437c86
push 0xddf901a7
push 0xf37dd967
push 0
push 0xb
mov ecx, ebx
call fcn.00407f3c
add esp, 0x10
mov byte [ebx + 0x16], 0
push ebx
push esi
call edi
push 0x2e
pop ebx
test eax, eax
je 0x437557
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x38]
push eax
call fcn.00437f5b
jmp 0x437554
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov edi, dword [eax + edx]
add edi, edx
jmp 0x437b43
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov edi, dword [eax + edx]
add edi, edx
jmp 0x437c53
mov eax, dword [0x4e6d94]
test eax, eax
jne 0x437da6
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 [esp + 0x2c], ecx
cmp ecx, esi
je 0x437d7d
mov ebx, dword [ecx + 0x18]
test ebx, ebx
je 0x437d7d
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + ebx*4]
add ecx, esi
sub ecx, 4
mov edx, 0x7df5671c
dec ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], ecx
mov edi, dword [ecx]
add edi, esi
mov dl, byte [edi]
inc edi
test dl, dl
je 0x437d79
mov esi, dword [esp + 0x28]
movsx ecx, dl
xor ecx, esi
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
mov dl, byte [edi]
imul esi, ecx, 0x1000193
inc edi
test dl, dl
jne 0x437d38
mov dword [esp + 0x28], esi
cmp dword [esp + 0x28], 0x77f7c7ef
mov esi, dword [eax + 0x18]
je 0x437d84
mov ecx, dword [esp + 0x30]
test ebx, ebx
jne 0x437d18
mov eax, dword [eax]
jmp 0x437cf5
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x24]
lea eax, [eax + ebx*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 esi, dword [esp + 0x38]
mov dword [0x4e6d94], eax
push dword [esp + 0x24]
call eax
mov ecx, esi
call fcn.00416e90
xor esi, esi
mov ecx, esi
call fcn.00416e90
mov ecx, dword [esp + 0x294]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004b0ce6
mov esp, ebp
pop ebp
ret