Function at 0x53b1d0
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov eax, dword [0x568008]
xor eax, esp
mov dword [esp + 0x84], eax
push esi
push edi
mov edi, dword [0x568a60]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0x56321149
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b23d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b220
cmp edx, 0xbb1031c9
je 0x53b246
inc dword [esp + 0x1c]
add esi, 4
jmp 0x53b210
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
push dword [0x568120]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
test ax, ax
jns 0x53c2a2
mov al, 0x79
mov byte [esp + 0xc], 0x34
mov cl, al
mov byte [esp + 0x13], 0
mov dh, al
mov byte [esp + 0x13], 0
xor al, byte [esp + 0xc]
mov ch, 0x77
mov byte [esp + 0xd], al
mov dl, 0x6c
mov al, byte [esp + 0xc]
mov ah, 0x72
xor cl, al
mov dword [esp + 0x50], 0
xor ch, al
mov byte [esp + 0xe], cl
xor dl, al
mov byte [esp + 0x11], ch
xor ah, al
mov byte [esp + 0xf], dl
xor dh, al
mov byte [esp + 0x10], ah
xorps xmm0, xmm0
mov byte [esp + 0x12], dh
lea ecx, [esp + 0xd]
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x54], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53b2d8
sub ecx, edx
lea eax, [esp + 0xd]
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.004a2240
mov dh, 0x53
mov byte [esp + 0x12], 0
mov cl, 0x19
mov byte [esp + 0xc], dh
mov dl, 0x30
mov byte [esp + 0x12], 0
xor cl, dh
mov dword [esp + 0x30], 0
mov al, 0x67
mov byte [esp + 0xe], cl
mov ah, 0x26
mov dword [esp + 0x34], 0
mov ch, 0x24
xor al, dh
xor dl, dh
mov byte [esp + 0xd], al
xor ah, dh
mov byte [esp + 0xf], dl
xor ch, dh
mov byte [esp + 0x10], ah
mov byte [esp + 0x11], ch
xorps xmm0, xmm0
lea ecx, [esp + 0xd]
movaps xmmword [esp + 0x20], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53b347
sub ecx, edx
lea eax, [esp + 0xd]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.004a2240
mov dh, 0xe
mov byte [esp + 0x12], 0
mov cl, 0x5a
mov byte [esp + 0xc], dh
xor cl, dh
mov byte [esp + 0x12], 0
mov ch, 0x4d
mov byte [esp + 0xe], cl
xor ch, dh
mov dword [esp + 0x70], 0
mov byte [esp + 0x11], ch
mov al, 0x3d
xor al, dh
mov dword [esp + 0x74], 0
mov dl, 0x45
mov byte [esp + 0xd], al
mov ah, 0x48
xor dl, dh
xor ah, dh
mov byte [esp + 0xf], dl
mov ecx, 1
mov byte [esp + 0x10], ah
cmp dword [esp + 0x50], ecx
lea eax, [esp + 0x40]
xorps xmm0, xmm0
cmovb ecx, dword [esp + 0x50]
cmp dword [esp + 0x54], 0x10
push ecx
cmovae eax, dword [esp + 0x44]
lea ecx, [esp + 0x64]
push eax
movaps xmmword [esp + 0x68], xmm0
call fcn.004a2240
lea edx, [esp + 0xd]
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x53b3e0
sub edx, ecx
lea eax, [esp + 0xd]
cmp dword [esp + 0x74], 0x10
lea ecx, [esp + 0x60]
push edx
cmovae ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x74]
push eax
call fcn.004a23e0
add esp, 8
mov byte [esp + 0x1a], al
lea ecx, [esp + 0x60]
call fcn.004a1ba0
cmp byte [esp + 0x1a], 0
je 0x53b498
mov byte [esp + 0xc], 0x11
mov al, 0x5f
xor al, byte [esp + 0xc]
mov cl, 0x4b
mov byte [esp + 0xd], al
mov dl, 0x69
mov al, byte [esp + 0xc]
mov ch, 0x56
mov dh, 0x21
mov byte [esp + 0x1a], 0x42
xor cl, al
mov byte [esp + 0x14], 0
xor dl, al
mov byte [esp + 0xe], cl
xor ch, al
mov byte [esp + 0xf], dl
xor dh, al
mov byte [esp + 0x11], ch
mov ah, 0x52
mov byte [esp + 0x12], dh
xor ah, al
mov byte [esp + 0x14], 0
mov al, byte [esp + 0x1a]
lea ecx, [esp + 0xd]
xor al, byte [esp + 0xc]
lea edx, [ecx + 1]
mov byte [esp + 0x10], ah
mov byte [esp + 0x13], al
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53b480
sub ecx, edx
lea eax, [esp + 0xd]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.004a1de0
lea ecx, [esp + 0x20]
call fcn.004a1ba0
lea ecx, [esp + 0x40]
call fcn.004a1ba0
mov edi, dword [0x568a60]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0x4bbd274c
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b4fd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b4e0
cmp edx, 0x3bc319d6
je 0x53b506
inc dword [esp + 0x1c]
add esi, 4
jmp 0x53b4d0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
push 0
push dword [str.Eqrstuvwxyz]
mov eax, dword [edx + 0x24]
push 0x100
push dword [0x568a6c]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
mov edx, dword [0x568a4c]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x667c405b
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b57f
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b562
cmp edx, 0x666e6b7e
je 0x53b58b
mov edx, dword [0x568a4c]
inc edi
add esi, 4
jmp 0x53b552
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a4c]
push 0x23
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop dword [eax + eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x4d7a4697
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b5fd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b5e0
cmp edx, 0xdb2d4d45
je 0x53b609
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53b5d0
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0x80000000
push dword [str.Eqrstuvwxyz]
mov eax, dword [esi + 0x24]
push 0x101
push dword [0x568a6c]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov edx, dword [0x568a4c]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop word [eax + eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xb690b8b
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b68d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b670
cmp edx, 0x3c3ae4ce
je 0x53b699
mov edx, dword [0x568a4c]
inc edi
add esi, 4
jmp 0x53b660
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a4c]
push 0x19
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov ecx, 1
mov dword [esp + 0x30], 0
cmp dword [0x5682c0], ecx
mov eax, 0x5682b0
xorps xmm0, xmm0
mov dword [esp + 0x34], 0
cmovb ecx, dword [0x5682c0]
cmp dword [0x5682c4], 8
push ecx
cmovae eax, dword [0x5682b0]
lea ecx, [esp + 0x24]
push eax
movaps xmmword [esp + 0x28], xmm0
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x8a086c8f
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b74d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b730
cmp edx, 0x27e5615d
je 0x53b759
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53b720
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x100
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov ecx, 1
mov dword [esp + 0x30], 0
cmp dword [0x5682c0], ecx
mov eax, 0x5682b0
xorps xmm0, xmm0
mov dword [esp + 0x34], 0
cmovb ecx, dword [0x5682c0]
cmp dword [0x5682c4], 8
push ecx
cmovae eax, dword [0x5682b0]
lea ecx, [esp + 0x24]
push eax
movaps xmmword [esp + 0x28], xmm0
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x49346603
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b830
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b813
cmp edx, 0x7ba4a2c9
je 0x53b83c
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53b803
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0x80000000
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x101
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov edx, dword [0x568a4c]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xcc7cfddd
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b8ce
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b8b1
cmp edx, 0x1bb9b8a0
je 0x53b8da
mov edx, dword [0x568a4c]
inc edi
add esi, 4
jmp 0x53b8a1
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a4c]
push 0x19
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov eax, dword [0x5682c0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
cmp eax, 1
jb 0x53c2b6
dec eax
mov ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp dword [0x5682c4], 8
mov eax, 0x5682b0
cmovae eax, dword [0x5682b0]
push ecx
add eax, 2
lea ecx, [esp + 0x24]
push eax
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop dword [eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x71e4acdd
mov al, byte [ecx]
inc ecx
test al, al
je 0x53b99d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53b980
cmp edx, 0x6621739b
je 0x53b9a9
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53b970
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x100
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov eax, dword [0x5682c0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
cmp eax, 1
jb 0x53c2bb
dec eax
mov ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp dword [0x5682c4], 8
mov eax, 0x5682b0
cmovae eax, dword [0x5682b0]
push ecx
add eax, 2
lea ecx, [esp + 0x24]
push eax
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop dword [eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x50e2a681
mov al, byte [ecx]
inc ecx
test al, al
je 0x53ba8d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53ba70
cmp edx, 0xffc06ff7
je 0x53ba99
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53ba60
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0x80000000
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x101
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov edx, dword [0x568a4c]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xad16529
mov al, byte [ecx]
inc ecx
test al, al
je 0x53bb2d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53bb10
cmp edx, 0x572ac00c
je 0x53bb39
mov edx, dword [0x568a4c]
inc edi
add esi, 4
jmp 0x53bb00
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a4c]
push 0x19
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov byte [esp + 0xc], 0x54
mov al, 0x1b
xor al, byte [esp + 0xc]
xor cl, cl
mov ch, 0x31
mov byte [esp + 0x13], cl
mov dh, ch
mov byte [esp + 0xd], al
mov al, byte [esp + 0xc]
mov dl, 0x1f
xor cl, al
mov byte [esp + 0x13], 0
xor ch, al
mov byte [esp + 0xe], cl
mov ah, 0x30
mov byte [esp + 0x11], ch
xor dl, al
mov dword [esp + 0x70], 0
xor ah, al
mov byte [esp + 0xf], dl
xor dh, al
mov byte [esp + 0x10], ah
xorps xmm0, xmm0
mov byte [esp + 0x12], dh
lea ecx, [esp + 0xd]
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x74], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53bbc0
sub ecx, edx
lea eax, [esp + 0xd]
push ecx
push eax
lea ecx, [esp + 0x68]
call fcn.004a2240
mov byte [esp + 0xc], 0x35
mov cl, 0x6c
xor cl, byte [esp + 0xc]
mov al, 0x79
xor al, byte [esp + 0xc]
mov ch, 0x65
mov byte [esp + 0xd], al
mov dl, 0x41
mov byte [esp + 0xe], cl
mov dh, 0x6f
mov cl, byte [esp + 0xc]
mov ah, 0x77
mov byte [esp + 0x1a], 0x58
xor dl, cl
mov al, byte [esp + 0x1a]
xor ch, cl
xor al, cl
mov byte [esp + 0x1b], 0x56
xor dh, cl
mov byte [esp + 0x13], al
mov al, byte [esp + 0x1b]
xor ah, cl
xor al, cl
mov byte [esp + 0x11], ch
xorps xmm0, xmm0
mov byte [esp + 0x15], 0
lea ecx, [esp + 0xd]
mov byte [esp + 0xf], dl
mov byte [esp + 0x12], dh
lea edx, [ecx + 1]
mov byte [esp + 0x10], ah
mov byte [esp + 0x14], al
mov byte [esp + 0x15], 0
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53bc60
sub ecx, edx
lea eax, [esp + 0xd]
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.004a2240
mov byte [esp + 0xc], 0x3f
mov al, 0x52
xor al, byte [esp + 0xc]
mov dl, 0x65
mov ah, 0x71
mov byte [esp + 0xd], al
mov al, byte [esp + 0xc]
mov ch, ah
mov dh, dl
mov byte [esp + 0x1b], 0x5b
mov cl, 0xc
mov byte [esp + 0x14], 0
xor cl, al
mov byte [esp + 0x14], 0
xor dl, al
mov byte [esp + 0xe], cl
xor ch, al
mov byte [esp + 0xf], dl
xor dh, al
mov byte [esp + 0x11], ch
xor ah, al
mov byte [esp + 0x12], dh
mov al, byte [esp + 0x1b]
lea edx, [esp + 0xd]
xor al, byte [esp + 0xc]
lea ecx, [edx + 1]
mov byte [esp + 0x10], ah
mov byte [esp + 0x13], al
mov al, byte [edx]
inc edx
test al, al
jne 0x53bcd5
sub edx, ecx
lea eax, [esp + 0xd]
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
push edx
cmovae ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
push eax
call fcn.004a23e0
add esp, 8
test al, al
je 0x53bdd7
mov byte [esp + 0xc], 0x46
mov al, 0x1e
xor al, byte [esp + 0xc]
mov cl, 1
mov ch, 0x25
mov byte [esp + 0xd], al
mov al, byte [esp + 0xc]
mov dl, 0x1f
xor cl, al
mov byte [esp + 0x13], 0
xor ch, al
mov byte [esp + 0xe], cl
mov ah, 0x31
mov byte [esp + 0x11], ch
mov dh, 4
mov byte [esp + 0x13], 0
xor dl, al
mov dword [esp + 0x30], 0
xor ah, al
mov byte [esp + 0xf], dl
xor dh, al
mov byte [esp + 0x10], ah
xorps xmm0, xmm0
mov byte [esp + 0x12], dh
lea ecx, [esp + 0xd]
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x34], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53bd70
sub ecx, edx
lea eax, [esp + 0xd]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.004a2240
mov dh, 0x79
mov byte [esp + 0x12], 0
mov al, 0x3e
mov byte [esp + 0xc], dh
mov ah, 0x35
mov byte [esp + 0x12], 0
xor al, dh
xor ah, dh
mov cl, 0x4c
mov byte [esp + 0xd], al
mov ch, 0x18
mov byte [esp + 0x10], ah
xor cl, dh
lea eax, [esp + 0xd]
xor ch, dh
mov byte [esp + 0xe], cl
mov dl, 0x36
mov byte [esp + 0x11], ch
xor dl, dh
lea ecx, [esp + 0x20]
push eax
mov byte [esp + 0x13], dl
call fcn.004a1aa0
lea ecx, [esp + 0x20]
call fcn.004a1ba0
lea ecx, [esp + 0x40]
call fcn.004a1ba0
lea ecx, [esp + 0x60]
call fcn.004a1ba0
mov eax, dword [0x5682c0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
cmp eax, 2
jb 0x53c2c0
add eax, 0xfffffffe
mov ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp dword [0x5682c4], 8
mov eax, 0x5682b0
cmovae eax, dword [0x5682b0]
push ecx
add eax, 4
lea ecx, [esp + 0x24]
push eax
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x244fb312
mov al, byte [ecx]
inc ecx
test al, al
je 0x53be84
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53be67
cmp edx, 0x3f50826c
je 0x53be90
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53be57
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x100
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov eax, dword [0x5682c0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
cmp eax, 2
jb 0x53c2c5
add eax, 0xfffffffe
mov ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp dword [0x5682c4], 8
mov eax, 0x5682b0
cmovae eax, dword [0x5682b0]
push ecx
add eax, 4
lea ecx, [esp + 0x24]
push eax
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xdfe5bafa
mov al, byte [ecx]
inc ecx
test al, al
je 0x53bf73
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53bf56
cmp edx, 0xf2566534
je 0x53bf7f
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53bf46
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0x80000000
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x101
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov edx, dword [0x568a4c]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x66b0bca8
mov al, byte [ecx]
inc ecx
test al, al
je 0x53c011
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53bff4
cmp edx, 0xcf9d787b
je 0x53c01d
mov edx, dword [0x568a4c]
inc edi
add esi, 4
jmp 0x53bfe4
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a4c]
push 0x19
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov eax, dword [0x5682c0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
cmp eax, 3
jb 0x53c2ca
add eax, 0xfffffffd
mov ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp dword [0x5682c4], 8
mov eax, 0x5682b0
cmovae eax, dword [0x5682b0]
push ecx
add eax, 6
lea ecx, [esp + 0x24]
push eax
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x65e74ee0
mov al, byte [ecx]
inc ecx
test al, al
je 0x53c0dd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53c0c0
cmp edx, 0xce4b9f12
je 0x53c0e9
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53c0b0
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x100
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov eax, dword [0x5682c0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
cmp eax, 3
jb 0x53c2cf
add eax, 0xfffffffd
mov ecx, 1
cmp eax, 1
cmovb ecx, eax
cmp dword [0x5682c4], 8
mov eax, 0x5682b0
cmovae eax, dword [0x5682b0]
push ecx
add eax, 6
lea ecx, [esp + 0x24]
push eax
call fcn.004a43e0
mov edx, dword [0x568a60]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xbe3b5af7
mov al, byte [ecx]
inc ecx
test al, al
je 0x53c1cd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53c1b0
cmp edx, 0xfa461be5
je 0x53c1d9
mov edx, dword [0x568a60]
inc edi
add esi, 4
jmp 0x53c1a0
mov esi, dword [esp + 0xc]
mov edx, dword [0x568a60]
push 0x80000000
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push ecx
lea eax, [eax + ecx*4]
mov esi, dword [eax + edx]
lea ecx, [esp + 0x28]
add esi, edx
call fcn.004a5be0
add esp, 4
add eax, 0x60
push eax
push 0x101
push dword [0x568a6c]
call esi
lea ecx, [esp + 0x20]
call fcn.004a1c30
mov edi, dword [0x568a60]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x47724a8a
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x53c26f
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x53c252
cmp edx, 0x9b827ec2
je 0x53c278
inc dword [esp + 0x1c]
add esi, 4
jmp 0x53c242
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
push dword [0x568120]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
test ax, ax
js 0x53c224
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
xor ecx, esp
call fcn.004a6087
mov esp, ebp
pop ebp
ret
call fcn.004a20c0
call fcn.004a20c0
call fcn.004a20c0
call fcn.004a20c0
call fcn.004a20c0
call fcn.004a20c0
int3