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

Disassembly:
push 0xd8
mov eax, 0x499f2d
call fcn.0046c7ba
mov eax, dword fs:[0x30]
and dword [ebp - 0x24], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x28], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x14], ecx
cmp ecx, esi
je 0x404956
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x404956
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edx*4]
add ebx, esi
lea ebx, [ebx - 4]
mov ecx, 0xc9a611e6
mov edi, dword [ebx]
dec edx
add edi, esi
mov dword [ebp - 0x18], ecx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x404952
mov esi, dword [ebp - 0x18]
movsx ecx, cl
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404931
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], 0x1a4572a0
mov esi, dword [eax + 0x18]
je 0x40495a
test edx, edx
jne 0x404917
mov eax, dword [eax]
jmp 0x4048ed
mov eax, dword [ebp - 0x14]
xor ebx, ebx
push 0xf0000000
push 0x18
push ebx
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
push ebx
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0x24]
add eax, esi
push ecx
call eax
test eax, eax
jne 0x40499a
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0x10]
push eax
mov word [ebp + 0x10], bx
call fcn.0041437c
jmp 0x405274
mov eax, dword fs:[0x30]
mov dword [ebp - 0x18], ebx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x28], ecx
lea ecx, [edx + esi]
mov dword [ebp - 0x14], ecx
cmp ecx, esi
je 0x404a12
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x404a12
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edx*4]
add ebx, esi
lea ebx, [ebx - 4]
mov ecx, 0xd6851498
mov edi, dword [ebx]
dec edx
add edi, esi
mov dword [ebp - 0x1c], ecx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x404a0e
mov esi, dword [ebp - 0x1c]
movsx ecx, cl
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x4049ed
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], 0x2bd7578
mov esi, dword [eax + 0x18]
je 0x404a16
test edx, edx
jne 0x4049d3
mov eax, dword [eax]
jmp 0x4049a9
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0x18]
push ecx
push 0
push 0
push 0x8003
push dword [ebp - 0x24]
add eax, esi
call eax
test eax, eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
jne 0x404ae4
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x404abe
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x404abe
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0x6435fa71
dec esi
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx]
add edi, edx
mov dl, byte [edi]
inc edi
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x404aba
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404a96
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0x8d41f1b
mov edx, dword [eax + 0x18]
je 0x404ac2
mov ecx, dword [ebp - 0x14]
test esi, esi
jne 0x404a71
mov eax, dword [eax]
jmp 0x404a52
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
xor ebx, ebx
push ebx
push dword [ebp - 0x24]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
jmp 0x404985
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov ebx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
add ebx, esi
mov dword [ebp - 0x28], ecx
cmp ebx, esi
je 0x404b58
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x404b58
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
sub ecx, 4
dec edx
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx]
mov ecx, 0x5f945aaa
add edi, esi
mov dword [ebp - 0x1c], ecx
mov cl, byte [edi]
inc edi
mov byte [ebp - 0x1d], cl
test cl, cl
mov ecx, dword [ebp - 0x14]
je 0x404b54
mov cl, byte [ebp - 0x1d]
mov esi, dword [ebp - 0x1c]
movsx ecx, cl
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404b30
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], 0x6c099356
mov esi, dword [eax + 0x18]
je 0x404b5c
mov ecx, dword [ebp - 0x14]
test edx, edx
jne 0x404b0a
mov eax, dword [eax]
jmp 0x404ae4
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x1c]
add eax, esi
push 0
push dword [ebp + 0x10]
add ecx, esi
movzx eax, word [eax + edx*2]
push dword [ebp + 0xc]
push dword [ebp - 0x18]
mov eax, dword [ecx + eax*4]
add eax, esi
call eax
test eax, eax
mov eax, dword fs:[0x30]
jne 0x404c9a
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x404bfc
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x404bfc
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0x1f54b3c3
dec esi
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx]
add edi, edx
mov dl, byte [edi]
inc edi
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x404bf8
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404bd4
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0x63a0fa7d
mov edx, dword [eax + 0x18]
je 0x404c00
mov ecx, dword [ebp - 0x14]
test esi, esi
jne 0x404baf
mov eax, dword [eax]
jmp 0x404b90
mov eax, dword [ebx + 0x24]
push dword [ebp - 0x18]
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
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x404c96
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x404c96
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0x2390fecf
dec esi
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx]
add edi, edx
mov dl, byte [edi]
inc edi
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x404c92
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404c6a
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0xca1d1039
mov edx, dword [eax + 0x18]
je 0x404ac2
mov ecx, dword [ebp - 0x14]
test esi, esi
jne 0x404c45
mov eax, dword [eax]
jmp 0x404c26
and dword [ebp - 0x34], 0
mov dword [ebp - 0x44], 4
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
mov ecx, dword [ecx + esi + 0x7c]
mov dword [ebp - 0x28], ecx
lea ecx, [edx + esi]
mov dword [ebp + 0xc], ecx
cmp ecx, esi
je 0x404d14
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x404d14
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edx*4]
add ebx, esi
lea ebx, [ebx - 4]
mov ecx, 0xf3e6b893
mov edi, dword [ebx]
dec edx
add edi, esi
mov dword [ebp + 0x10], ecx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x404d10
mov esi, dword [ebp + 0x10]
movsx ecx, cl
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404cef
mov dword [ebp + 0x10], esi
cmp dword [ebp + 0x10], 0xcb266aa8
mov esi, dword [eax + 0x18]
je 0x404d18
test edx, edx
jne 0x404cd5
mov eax, dword [eax]
jmp 0x404cab
mov eax, dword [ebp + 0xc]
push 0
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x34]
add eax, esi
push ecx
push 4
push dword [ebp - 0x18]
call eax
test eax, eax
jne 0x404e5d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x404dbf
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x404dbf
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0x63f22abe
dec esi
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx]
add edi, edx
mov dl, byte [edi]
inc edi
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x404dbb
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404d97
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0x4885f088
mov edx, dword [eax + 0x18]
je 0x404dc3
mov ecx, dword [ebp - 0x14]
test esi, esi
jne 0x404d72
mov eax, dword [eax]
jmp 0x404d53
mov eax, dword [ebx + 0x24]
push dword [ebp - 0x18]
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
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x404e59
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x404e59
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0x6a4903ad
dec esi
mov dword [ebp - 0x14], ecx
mov edi, dword [ecx]
add edi, edx
mov dl, byte [edi]
inc edi
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x404e55
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404e2d
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0x811c5f9f
mov edx, dword [eax + 0x18]
je 0x404ac2
mov ecx, dword [ebp - 0x14]
test esi, esi
jne 0x404e08
mov eax, dword [eax]
jmp 0x404de9
mov edi, dword [ebp - 0x34]
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x14], ecx
xor ebx, ebx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ecx
test edi, edi
je 0x404e99
push edi
lea ecx, [ebp - 0x40]
call fcn.00417020
mov esi, dword [ebp - 0x40]
push edi
push ebx
push esi
call fcn.0046e020
mov eax, dword [ebp - 0x38]
lea ebx, [edi + esi]
add esp, 0xc
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x14], eax
and dword [ebp - 4], 0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 0x18]
mov ecx, dword [edi + 0x3c]
mov edx, dword [ecx + edi + 0x78]
mov ecx, dword [ecx + edi + 0x7c]
mov dword [ebp - 0x28], ecx
lea ecx, [edx + edi]
mov dword [ebp - 0x28], ecx
cmp ecx, edi
je 0x404f25
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x404f25
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, edi
sub ecx, 4
mov dword [ebp + 0xc], 0x1f0da2c4
mov dword [ebp - 0x30], ecx
dec edx
mov ecx, dword [ecx]
add ecx, edi
mov bl, byte [ecx]
inc ecx
mov dword [ebp - 0x1c], ecx
mov cl, bl
mov byte [ebp + 0x13], bl
test cl, cl
je 0x404f1e
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x404efa
mov edi, dword [eax + 0x18]
mov dword [ebp + 0xc], ebx
cmp dword [ebp + 0xc], 0x10e75585
mov ebx, dword [ebp - 0x3c]
je 0x404f29
mov ecx, dword [ebp - 0x30]
test edx, edx
jne 0x404ed3
mov eax, dword [eax]
jmp 0x404ea9
mov eax, dword [ebp - 0x28]
push 0
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edi
add eax, edi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0x34]
push ecx
push esi
push 2
add eax, edi
pop edi
push edi
push dword [ebp - 0x18]
call eax
test eax, eax
jne 0x4050bd
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ecx, dword [ecx + edx + 0x78]
add ecx, edx
mov dword [ebp - 0x30], ecx
cmp ecx, edx
je 0x404fd2
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x404fd2
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0x231ea4bf
dec edi
mov dword [ebp - 0x28], ecx
mov ebx, dword [ecx]
add ebx, edx
mov dl, byte [ebx]
inc ebx
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x404fce
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x404faa
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0x60435ad1
mov edx, dword [eax + 0x18]
je 0x404fd6
mov ecx, dword [ebp - 0x28]
test edi, edi
jne 0x404f85
mov eax, dword [eax]
jmp 0x404f63
mov ebx, dword [ebp - 0x30]
push dword [ebp - 0x18]
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
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ecx, dword [ecx + edx + 0x78]
add ecx, edx
mov dword [ebp - 0x30], ecx
cmp ecx, edx
je 0x40506e
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x40506e
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0x9990d145
dec edi
mov dword [ebp - 0x28], ecx
mov ebx, dword [ecx]
add ebx, edx
mov dl, byte [ebx]
inc ebx
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x40506a
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x405046
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0x4dfc2dd7
mov edx, dword [eax + 0x18]
je 0x405072
mov ecx, dword [ebp - 0x28]
test edi, edi
jne 0x405021
mov eax, dword [eax]
jmp 0x404fff
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
xor ebx, ebx
push ebx
push dword [ebp - 0x24]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0x10]
push eax
mov word [ebp + 0x10], bx
call fcn.0041437c
test esi, esi
je 0x405274
mov eax, dword [ebp - 0x14]
sub eax, esi
push eax
push esi
call fcn.00416bfd
pop ecx
pop ecx
jmp 0x405274
push ecx
lea ecx, [ebp - 0xe4]
call fcn.00413a5b
mov byte [ebp - 4], 1
jmp 0x405129
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 4]
mov byte [ebp + eax - 0xa4], 0x30
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 4]
and dword [ebp + eax - 0xc0], 0
mov dword [ebp + eax - 0xc4], edi
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + ecx - 0xd0]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ebp + ecx - 0xd0], eax
lea ecx, [ebp - 0xe4]
movzx eax, byte [esi]
push eax
call fcn.00413baf
inc esi
cmp esi, ebx
jne 0x4050cf
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x4051a5
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x4051a5
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp + 0xc], 0xe8cde525
dec esi
mov dword [ebp - 0x28], ecx
mov edi, dword [ecx]
add edi, edx
mov dl, byte [edi]
inc edi
mov byte [ebp + 0x13], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x4051a1
mov cl, byte [ebp + 0x13]
mov edx, dword [ebp + 0xc]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x40517d
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0xe6db149f
mov edx, dword [eax + 0x18]
je 0x4051a9
mov ecx, dword [ebp - 0x28]
test esi, esi
jne 0x405158
mov eax, dword [eax]
jmp 0x405139
mov eax, dword [ebx + 0x24]
push dword [ebp - 0x18]
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
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ecx, dword [ecx + edx + 0x78]
add ecx, edx
mov dword [ebp + 0xc], ecx
cmp ecx, edx
je 0x405230
mov esi, dword [ecx + 0x18]
test esi, esi
je 0x405230
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + esi*4]
add ebx, edx
lea ebx, [ebx - 4]
mov ecx, 0xb262467f
mov edi, dword [ebx]
dec esi
add edi, edx
mov dword [ebp + 0x10], ecx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x40522c
mov edx, dword [ebp + 0x10]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x40520b
mov dword [ebp + 0x10], edx
cmp dword [ebp + 0x10], 0xff2c93a9
mov edx, dword [eax + 0x18]
je 0x405234
test esi, esi
jne 0x4051f1
mov eax, dword [eax]
jmp 0x4051cf
mov edi, dword [ebp + 0xc]
push 0
push dword [ebp - 0x24]
mov eax, dword [edi + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [edi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
push dword [ebp + 8]
lea ecx, [ebp - 0xe0]
call fcn.00414ea4
lea ecx, [ebp - 0xe4]
call fcn.00403e14
lea ecx, [ebp - 0x40]
call fcn.00415138
mov eax, dword [ebp + 8]
call fcn.0046c788
ret 0xc