Function at 0x41a340
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov dword [esp + 0x44], 0
mov dword [esp], 0
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 8]
lea edx, [eax - 0x6f0b5d1c]
lea esi, [eax + 0x21e945e4]
and esi, ecx
or edx, ecx
lea ecx, [edx + edx]
not ecx
add ecx, edx
or ecx, esi
mov esi, ecx
not esi
mov edx, esi
and edx, 0x785ae8fd
mov edi, ecx
and edi, 2
imul edi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
mov esi, ecx
or esi, 0x7a51700
and esi, edx
xor edx, ecx
lea edx, [edx + esi*2]
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax + 8], dl
inc eax
jne 0x41a370
mov eax, dword [esp + 4]
mov ecx, dword [0x44a4e0]
test ecx, ecx
je 0x41a422
xor edx, edx
mov esi, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xa896961c
je 0x41a400
inc edx
cmp ecx, edx
jne 0x41a3f0
jmp 0x41a422
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x41a422
mov eax, esp
push eax
push 0
push 0x28
push 0xfffffffffffffffe
push 0x10
push ecx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x1c
test eax, eax
jns 0x41a520
mov dword [esp + 4], 0x743332bd
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xf9
xor dl, byte [esp + ecx + 4]
add dl, 0x38
mov byte [esp + ecx + 4], dl
mov edx, ecx
xor edx, 0xfffffffe
or ecx, 1
and edx, ecx
add ecx, edx
cmp ecx, 4
jb 0x41a440
cmp eax, dword [esp + 4]
jne 0x41a520
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 8]
lea edx, [eax - 0x6f0b5d1c]
lea esi, [eax + 0x21e945e4]
and esi, ecx
or edx, ecx
lea ecx, [edx + edx]
not ecx
add ecx, edx
or ecx, esi
mov esi, ecx
not esi
mov edx, esi
and edx, 0x785ae8fd
mov edi, ecx
and edi, 2
imul edi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
mov esi, ecx
or esi, 0x7a51700
and esi, edx
xor edx, ecx
lea edx, [edx + esi*2]
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax + 8], dl
inc eax
jne 0x41a480
mov eax, dword [0x44a4e0]
test eax, eax
je 0x41a520
mov ecx, dword [esp + 4]
xor edx, edx
mov esi, dword [0x44a4e4]
cmp dword [esi + edx*8], 0xb7c1bb11
je 0x41a500
inc edx
cmp eax, edx
jne 0x41a4f0
jmp 0x41a520
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x41a520
mov ecx, esp
push ecx
push 0x28
push 0xffffffffffffffff
push 0xc
push eax
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x18
mov ecx, dword [esp]
test ecx, ecx
je 0x41abae
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
lea esi, [eax - 0x6f0b5d1c]
lea edi, [eax + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov edi, edx
not edi
mov esi, edi
and esi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
mov edi, edx
or edi, 0x7a51700
and edi, esi
xor esi, edx
lea ebx, [esi + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 8], bl
inc eax
jne 0x41a540
mov eax, dword [esp + 4]
mov edx, dword [0x44a4e0]
test edx, edx
je 0x41a5f5
xor esi, esi
mov edi, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x6e83e51e
je 0x41a5d0
inc esi
cmp edx, esi
jne 0x41a5c0
jmp 0x41a5f5
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41a5f5
lea eax, [esp + 0x38]
push eax
push 0
push 0
push 1
push ecx
push 0x14
push edx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x20
mov dword [esp + 4], 0x9c5b5a7a
xor ecx, ecx
nop
mov edx, ecx
add dl, 0xd1
xor dl, byte [esp + ecx + 4]
add dl, 0x78
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 4
jne 0x41a600
cmp eax, dword [esp + 4]
jne 0x41a73e
push dword [esp + 0x38]
call fcn.0043af40
add esp, 4
mov esi, dword [esp + 0x38]
mov ecx, dword [esp]
mov dword [esp + 0x4c], ecx
mov dword [esp + 4], 0x1c1d1e1f
mov ecx, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 8]
lea ebx, [ecx - 0x6f0b5d1c]
lea ebp, [ecx + 0x21e945e4]
and ebp, edi
or ebx, edi
lea edi, [ebx + ebx]
not edi
add edi, ebx
or edi, ebp
mov ebp, edi
not ebp
mov ebx, ebp
and ebx, 0x785ae8fd
mov edx, edi
and edx, 2
imul edx, ebx
and ebp, 2
or ebx, 2
imul ebx, ebp
add ebx, edx
mov edx, edi
or edx, 0x7a51700
and edx, ebx
xor ebx, edi
lea ebx, [ebx + edx*2]
and edi, 1
or ebx, 1
add ebx, edi
mov byte [esp + ecx + 8], bl
inc ecx
jne 0x41a650
mov ecx, dword [esp + 4]
mov edi, dword [0x44a4e0]
test edi, edi
je 0x41a70d
xor ebx, ebx
mov ebp, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0x6e83e51e
je 0x41a6e1
inc ebx
cmp edi, ebx
jne 0x41a6d0
jmp 0x41a70d
mov edi, dword [ebp + ebx*8 + 4]
cmp edi, ecx
je 0x41a70d
lea ecx, [esp + 0x38]
push ecx
push esi
push eax
push 1
push dword [esp + 0x5c]
push 0x14
push edi
push dword [0x44a4e8]
mov esi, eax
call fcn.0043c7c0
add esp, 0x20
mov ecx, eax
mov eax, esi
test ecx, ecx
js 0x41a735
mov ecx, dword [eax]
test ecx, ecx
je 0x41a735
cmp byte [ecx], 1
jne 0x41a735
cmp byte [ecx + 1], 0xf
ja 0x41a735
cmp byte [ecx + 7], 5
jne 0x41a735
cmp byte [ecx + 8], 0x12
jne 0x41a735
mov ecx, dword [esp]
mov dword [esp + 0x44], ecx
push eax
call fcn.0043af70
add esp, 4
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x41abb0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov eax, dword [0x4491b8]
mov dword [esp + 4], 0x993c9737
mov dword [esp + 8], 0x9d3d9b0c
mov dword [esp + 0xc], 0x81299f0e
mov dword [esp + 0x10], 0x85d683d1
mov dword [esp + 0x14], 0x892c87e8
mov dword [esp + 0x18], 0x8d208b26
mov word [esp + 0x1c], 0x8f8e
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, 0x59
sub esi, ecx
and esi, 0x50
lea edx, [ecx + 0x26]
and edx, 0x2f
or edx, esi
xor dl, byte [esp + ecx + 4]
xor dl, 0xd0
add dl, 0xd0
mov byte [esp + ecx + 4], dl
add ecx, 0xf036764f
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add ecx, 0xfc989b1
cmp ecx, 0x1a
jb 0x41a7a0
lea edi, [esp + 4]
push 0x800
push 0
push edi
call eax
lea ecx, [esp + 0x6c]
push eax
call fcn.0043c2f0
test al, al
je 0x41a977
mov dword [esp + 0x5c], 1
mov dword [esp + 0x68], 2
push 0x10a6c058
push dword [esp + 0x70]
call fcn.0043e140
add esp, 8
mov dword [esp + 4], 0x78c266b6
mov dword [esp + 8], 0x7cc67aa0
mov dword [esp + 0xc], 0x70da7ecd
mov dword [esp + 0x10], 0x74c072c3
mov dword [esp + 0x14], 0x48c976ca
mov dword [esp + 0x18], 0x4cff4ae8
mov dword [esp + 0x1c], 0x409f4ee8
mov dword [esp + 0x20], 0x44fa42f3
mov dword [esp + 0x24], 0x58fe46f3
mov dword [esp + 0x28], 0x5cfe5ae5
mov dword [esp + 0x2c], 0x50fa5efa
mov word [esp + 0x30], 0x5251
xor ecx, ecx
nop
nop
movzx esi, byte [esp + ecx + 4]
lea edx, [ecx - 0x7cfbccf3]
xor edx, esi
add edx, 0xbab688b5
mov esi, edx
xor esi, 0x1e
and edx, 0x61
add edx, edx
sub edx, esi
inc dl
mov byte [esp + ecx + 4], dl
lea edx, [ecx + ecx]
and edx, 2
mov esi, edx
and esi, ecx
or edx, ecx
xor edx, 1
add edx, esi
mov ecx, edx
cmp edx, 0x2e
jb 0x41a880
lea ecx, [esp + 0x60]
push ecx
push edi
push 0
call eax
test eax, eax
je 0x41ab07
mov ecx, dword [esp]
mov dword [esp + 0x74], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
movzx edx, byte [esp + eax + 0x78]
lea esi, [eax - 0x6f0b5d1c]
lea edi, [eax + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov edi, edx
not edi
mov esi, edi
and esi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
mov edi, edx
or edi, 0x7a51700
and edi, esi
xor esi, edx
lea ebx, [esi + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 0x78], bl
inc eax
jne 0x41a8e0
mov eax, dword [esp + 0x74]
mov edx, dword [0x44a4e0]
test edx, edx
je 0x41aa4e
xor esi, esi
mov edi, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x4b501129
je 0x41aa27
inc esi
cmp edx, esi
jne 0x41a960
jmp 0x41aa4e
mov ecx, dword [esp]
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
lea esi, [eax - 0x6f0b5d1c]
lea edi, [eax + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov edi, edx
not edi
mov esi, edi
and esi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
mov edi, edx
or edi, 0x7a51700
and edi, esi
xor esi, edx
lea ebx, [esi + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 8], bl
inc eax
jne 0x41a990
mov eax, dword [0x44a4e0]
test eax, eax
je 0x41abae
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb430e561
je 0x41abbb
inc esi
cmp eax, esi
jne 0x41aa10
jmp 0x41abae
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41aa4e
lea eax, [esp + 0x5c]
push 0
push 0
push 0x10
push eax
push 0
push ecx
push 0x18
push edx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x24
test eax, eax
js 0x41ab07
push dword [esp + 0x6c]
call dword [0x4492cc]
mov eax, dword [esp]
mov dword [esp + 4], 0x1c1d1e1f
mov ecx, 0xfffffffc
movzx edx, byte [esp + ecx + 8]
lea esi, [ecx - 0x6f0b5d1c]
lea edi, [ecx + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov edi, edx
not edi
mov esi, edi
and esi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
mov edi, edx
or edi, 0x7a51700
and edi, esi
xor esi, edx
lea ebx, [esi + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + ecx + 8], bl
inc ecx
jne 0x41aa70
mov ecx, dword [0x44a4e0]
test ecx, ecx
je 0x41abf5
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb430e561
je 0x41abdb
inc esi
cmp ecx, esi
jne 0x41aaf0
jmp 0x41abf5
push dword [esp + 0x6c]
call dword [0x4492cc]
mov ecx, dword [esp]
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
lea esi, [eax - 0x6f0b5d1c]
lea edi, [eax + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov edi, edx
not edi
mov esi, edi
and esi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
mov edi, edx
or edi, 0x7a51700
and edi, esi
xor esi, edx
lea ebx, [esi + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 8], bl
inc eax
jne 0x41ab30
mov eax, dword [0x44a4e0]
test eax, eax
je 0x41abae
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44a4e4]
cmp dword [edi + esi*8], 0xb430e561
je 0x41abbb
inc esi
cmp eax, esi
jne 0x41aba0
xor eax, eax
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [edi + esi*8 + 4]
xor eax, eax
cmp esi, edx
je 0x41abb0
push ecx
push 4
push esi
push dword [0x44a4e8]
call fcn.0043c7c0
xor eax, eax
add esp, 0x10
jmp 0x41abb0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x41abf5
push eax
push 4
push ecx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x10
mov dword [esp + 0x54], 0
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 8]
lea edx, [eax - 0x6f0b5d1c]
lea esi, [eax + 0x21e945e4]
and esi, ecx
or edx, ecx
lea ecx, [edx + edx]
not ecx
add ecx, edx
or ecx, esi
mov esi, ecx
not esi
mov edx, esi
and edx, 0x785ae8fd
mov edi, ecx
and edi, 2
imul edi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
mov esi, ecx
or esi, 0x7a51700
and esi, edx
xor edx, ecx
lea edx, [edx + esi*2]
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax + 8], dl
inc eax
jne 0x41ac10
mov eax, dword [esp + 4]
mov ecx, dword [0x44a4e0]
test ecx, ecx
je 0x41acc4
xor edx, edx
mov esi, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x67f3d776
je 0x41aca0
inc edx
cmp ecx, edx
jne 0x41ac90
jmp 0x41acc4
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x41acc4
lea eax, [esp + 0x54]
push eax
push 0
push 0
push 5
push 0x10
push ecx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x1c
mov dword [esp + 4], 0xa7666560
mov ecx, 0xb55c4444
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x4aa3bbc0]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xe0
mov byte [esp + ecx + 0x4aa3bbc0], dl
inc ecx
cmp ecx, 0xb55c4448
jne 0x41ace0
cmp eax, dword [esp + 4]
jne 0x41b64b
push dword [esp + 0x54]
call fcn.0043af40
add esp, 4
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
lea esi, [eax - 0x6f0b5d1c]
lea edi, [eax + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov edi, edx
not edi
mov esi, edi
and esi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
mov edi, edx
or edi, 0x7a51700
and edi, esi
xor esi, edx
lea ebx, [esi + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 8], bl
inc eax
jne 0x41ad40
mov eax, dword [esp + 4]
mov edx, dword [0x44a4e0]
test edx, edx
je 0x41adf2
xor esi, esi
mov edi, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x67f3d776
je 0x41add0
inc esi
cmp edx, esi
jne 0x41adc0
jmp 0x41adf2
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41adf2
push 0
push ecx
push dword [esp + 0x50]
push 5
push 0x10
push edx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x1c
test eax, eax
js 0x41b63f
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
lea esi, [esp + 0x74]
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebx + edi + 0x44]
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov ecx, esi
push 0
push eax
call fcn.0043b230
mov ecx, esi
push 0x1000
call fcn.0043b250
test eax, eax
js 0x41b625
mov dword [esp + 0x88], ebx
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
lea edi, [eax - 0x6f0b5d1c]
lea ebx, [eax + 0x21e945e4]
and ebx, edx
or edi, edx
lea edx, [edi + edi]
not edx
add edx, edi
or edx, ebx
mov ebx, edx
not ebx
mov edi, ebx
and edi, 0x785ae8fd
mov ebp, edx
and ebp, 2
imul ebp, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edi, ebp
mov ebx, edx
or ebx, 0x7a51700
and ebx, edi
xor edi, edx
lea ebx, [edi + ebx*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 8], bl
inc eax
jne 0x41ae80
mov eax, dword [esp + 4]
mov edx, dword [0x44a4e0]
test edx, edx
je 0x41af31
xor edi, edi
mov ebx, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xb7c1bb11
je 0x41af10
inc edi
cmp edx, edi
jne 0x41af00
jmp 0x41af31
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41af31
lea eax, [esp + 0x40]
push eax
push 0xa
push ecx
push 0xc
push edx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x18
test eax, eax
js 0x41b61a
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], 0x1c1d1e1f
mov eax, 0xfffffffc
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
lea edi, [eax - 0x6f0b5d1c]
lea ebx, [eax + 0x21e945e4]
and ebx, edx
or edi, edx
lea edx, [edi + edi]
not edx
add edx, edi
or edx, ebx
mov ebx, edx
not ebx
mov edi, ebx
and edi, 0x785ae8fd
mov ebp, edx
and ebp, 2
imul ebp, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edi, ebp
mov ebx, edx
or ebx, 0x7a51700
and ebx, edi
xor edi, edx
lea ebx, [edi + ebx*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 8], bl
inc eax
jne 0x41af50
mov ebp, dword [esp + 4]
mov eax, dword [0x44a4e0]
test eax, eax
je 0x41aff7
xor edx, edx
mov edi, dword [0x44a4e4]
cmp dword [edi + edx*8], 0x6e83e51e
je 0x41afd0
inc edx
cmp eax, edx
jne 0x41afc0
jmp 0x41aff7
mov edx, dword [edi + edx*8 + 4]
cmp edx, ebp
je 0x41aff7
lea eax, [esp + 0x38]
push eax
push 0
push 0
push 1
push ecx
push 0x14
push edx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x20
mov ebp, eax
mov dword [esp + 4], 0xe6a5a480
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 4]
mov edx, ecx
xor edx, 0xb8ecea7b
lea edi, [edx + ecx*2]
mov edx, eax
and edx, edi
mov esi, edx
or esi, 0xfd
inc esi
mov ebx, edx
and ebx, 0xfffffffd
imul ebx, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
sub ebx, edx
add ebx, edi
add bl, al
add bl, 0x28
mov byte [esp + ecx + 4], bl
lea eax, [ecx + ecx]
and eax, 2
xor ecx, 1
add ecx, eax
cmp ecx, 4
jb 0x41b010
cmp ebp, dword [esp + 4]
jne 0x41b55e
push dword [esp + 0x38]
call fcn.0043af40
add esp, 4
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov dword [esp + 4], 0x1c1d1e1f
mov ecx, 0xfffffffc
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 8]
lea esi, [ecx - 0x6f0b5d1c]
lea ebp, [ecx + 0x21e945e4]
and ebp, edx
or esi, edx
lea edi, [esi + esi]
not edi
add edi, esi
or edi, ebp
mov esi, edi
not esi
mov edx, esi
and edx, 0x785ae8fd
mov ebp, edi
and ebp, 2
imul ebp, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, ebp
mov esi, edi
or esi, 0x7a51700
and esi, edx
xor edx, edi
lea edx, [edx + esi*2]
and edi, 1
or edx, 1
add edx, edi
mov byte [esp + ecx + 8], dl
inc ecx
jne 0x41b090
mov ecx, dword [esp + 4]
mov edx, dword [0x44a4e0]
test edx, edx
je 0x41b123
xor edi, edi
mov ebp, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + edi*8], 0x6e83e51e
je 0x41b1ef
inc edi
cmp edx, edi
jne 0x41b110
mov ebp, eax
test ecx, ecx
js 0x41b555
mov eax, dword [ebp]
test eax, eax
je 0x41b555
cmp byte [eax], 1
jne 0x41b555
cmp byte [eax + 1], 0xf
ja 0x41b555
cmp byte [eax + 7], 5
jne 0x41b555
cmp byte [eax + 8], 0x12
jne 0x41b555
mov edx, dword [esp + 0x40]
mov dword [esp + 4], 0x1c1d1e1f
mov ecx, 0xfffffffc
movzx eax, byte [esp + ecx + 8]
lea esi, [ecx - 0x6f0b5d1c]
lea ebx, [ecx + 0x21e945e4]
and ebx, eax
or esi, eax
lea edi, [esi + esi]
not edi
add edi, esi
or edi, ebx
mov esi, edi
not esi
mov eax, esi
and eax, 0x785ae8fd
mov ebx, edi
and ebx, 2
imul ebx, eax
and esi, 2
or eax, 2
imul eax, esi
add eax, ebx
mov esi, edi
or esi, 0x7a51700
and esi, eax
xor eax, edi
lea eax, [eax + esi*2]
and edi, 1
or eax, 1
add eax, edi
mov byte [esp + ecx + 8], al
inc ecx
jne 0x41b170
mov edi, dword [esp + 4]
mov eax, dword [0x44a4e0]
test eax, eax
je 0x41b24d
xor ecx, ecx
mov ebx, dword [0x44a4e4]
cmp dword [ebx + ecx*8], 0x6e83e51e
je 0x41b224
inc ecx
cmp eax, ecx
jne 0x41b1df
jmp 0x41b24d
mov edx, dword [ebp + edi*8 + 4]
cmp edx, ecx
mov ebp, eax
je 0x41b125
lea ecx, [esp + 0x38]
push ecx
push ebx
push ebp
push 1
push dword [esp + 0x44]
push 0x14
push edx
push dword [0x44a4e8]
mov edi, ebp
call fcn.0043c7c0
add esp, 0x20
mov ecx, eax
jmp 0x41b125
mov eax, dword [ebx + ecx*8 + 4]
cmp eax, edi
je 0x41b24d
lea ecx, [esp + 0x50]
push ecx
push 0
push 0
push 3
push edx
push 0x14
push eax
push dword [0x44a4e8]
mov ebx, ebp
call fcn.0043c7c0
add esp, 0x20
mov edi, eax
mov dword [esp + 4], 0x26656440
mov edx, 0xc6b675bb
mov ebx, 0x39498a44
movzx eax, byte [esp + edx + 0x39498a49]
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
mov esi, 0xfffffffe
sub esi, eax
and esi, edx
and ecx, ebx
or ecx, esi
inc ecx
mov eax, ecx
and eax, 0x59
add eax, eax
xor ecx, 0x26
sub ecx, eax
add cl, 2
mov byte [esp + edx + 0x39498a49], cl
inc edx
dec ebx
cmp edx, 0xc6b675bf
jne 0x41b25f
cmp edi, dword [esp + 4]
jne 0x41b555
mov dword [esp + 0x84], ebp
push dword [esp + 0x50]
call fcn.0043af40
add esp, 4
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov dword [esp + 4], 0x1c1d1e1f
mov ecx, 0xfffffffc
movzx edi, byte [esp + ecx + 8]
lea edx, [ecx - 0x6f0b5d1c]
lea esi, [ecx + 0x21e945e4]
and esi, edi
or edx, edi
lea ebp, [edx + edx]
not ebp
add ebp, edx
or ebp, esi
mov edx, ebp
not edx
mov edi, edx
and edi, 0x785ae8fd
mov esi, ebp
and esi, 2
imul esi, edi
and edx, 2
or edi, 2
imul edi, edx
add edi, esi
mov edx, ebp
or edx, 0x7a51700
and edx, edi
xor edi, ebp
lea edx, [edi + edx*2]
and ebp, 1
or edx, 1
add edx, ebp
mov byte [esp + ecx + 8], dl
inc ecx
jne 0x41b2d2
mov ecx, dword [esp + 4]
mov edx, dword [0x44a4e0]
test edx, edx
je 0x41b356
xor edi, edi
mov ebp, dword [0x44a4e4]
cmp dword [ebp + edi*8], 0x6e83e51e
je 0x41b4d5
inc edi
cmp edx, edi
jne 0x41b343
mov edi, eax
test ecx, ecx
js 0x41b545
mov ecx, dword [edi]
test ecx, ecx
je 0x41b545
movzx edx, byte [esp + 0x60]
movzx eax, byte [esp + 0x61]
movzx ebx, byte [esp + 0x62]
mov byte [esp + 0x34], bl
mov ah, byte [esp + 0x63]
mov dh, byte [esp + 0x64]
mov byte [esp + 0x3f], dh
mov dh, byte [esp + 0x65]
mov byte [esp + 0x3e], dh
mov dh, byte [esp + 0x66]
mov byte [esp + 0x3d], dh
mov dh, byte [esp + 0x67]
mov byte [esp + 0x3c], dh
mov ebx, edi
add ebx, 0xb
jmp 0x41b3b2
add ebx, 0xc
dec ecx
je 0x41b545
cmp byte [ebx - 7], dl
jne 0x41b3a8
cmp byte [ebx - 6], al
jne 0x41b3a8
mov dh, byte [esp + 0x34]
cmp byte [ebx - 5], dh
jne 0x41b3a8
cmp byte [ebx - 4], ah
jne 0x41b3a8
mov dh, byte [esp + 0x3f]
cmp byte [ebx - 3], dh
jne 0x41b3a8
mov dh, byte [esp + 0x3e]
cmp byte [ebx - 2], dh
jne 0x41b3a8
mov dh, byte [esp + 0x3d]
cmp byte [ebx - 1], dh
jne 0x41b3a8
mov dh, byte [esp + 0x3c]
cmp byte [ebx], dh
jne 0x41b3a8
mov dword [esp + 0x34], edi
mov dword [esp + 0x8c], 0xc
mov dword [esp + 0x90], 2
mov word [esp + 0x94], 1
mov dword [esp + 4], 0x18
lea eax, [esp + 8]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
lea eax, [esp + 0x8c]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x58], 0x1c1d1e1f
mov eax, 0xfffffffc
movzx edx, byte [esp + eax + 0x5c]
lea esi, [eax - 0x6f0b5d1c]
lea edi, [eax + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov esi, edx
not esi
mov edi, esi
and edi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, edi
and esi, 2
or edi, 2
imul edi, esi
add edi, ebx
mov esi, edx
or esi, 0x7a51700
and esi, edi
xor edi, edx
lea ebx, [edi + esi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + eax + 0x5c], bl
inc eax
jne 0x41b454
mov eax, dword [esp + 0x58]
mov edx, dword [0x44a4e0]
test edx, edx
je 0x41b535
xor edi, edi
mov ebx, dword [0x44a4e4]
cmp dword [ebx + edi*8], 0x4d7e2c49
je 0x41b508
inc edi
cmp edx, edi
jne 0x41b4c5
jmp 0x41b535
mov edx, dword [ebp + edi*8 + 4]
cmp edx, ecx
mov edi, eax
je 0x41b358
lea ecx, [esp + 0x50]
push ecx
push ebx
push edi
push 3
push dword [esp + 0x44]
push 0x14
push edx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x20
mov ecx, eax
jmp 0x41b358
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41b535
lea eax, [esp + 0x44]
push eax
push 2
push 0
lea eax, [esp + 0x10]
push eax
push 0x2000000
push ecx
push 0x18
push edx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x24
test eax, eax
jns 0x41b541
mov dword [esp + 0x44], 0
mov edi, dword [esp + 0x34]
push edi
call fcn.0043af70
add esp, 4
mov ebp, dword [esp + 0x84]
push ebp
call fcn.0043af70
add esp, 4
mov eax, dword [esp + 0x40]
mov dword [esp + 4], 0x1c1d1e1f
mov ecx, 0xfffffffc
nop
movzx edx, byte [esp + ecx + 8]
lea esi, [ecx - 0x6f0b5d1c]
lea edi, [ecx + 0x21e945e4]
and edi, edx
or esi, edx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov esi, edx
not esi
mov edi, esi
and edi, 0x785ae8fd
mov ebx, edx
and ebx, 2
imul ebx, edi
and esi, 2
or edi, 2
imul edi, esi
add edi, ebx
mov esi, edx
or esi, 0x7a51700
and esi, edi
xor edi, edx
lea ebx, [edi + esi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + ecx + 8], bl
inc ecx
jne 0x41b570
mov ecx, dword [0x44a4e0]
test ecx, ecx
lea esi, [esp + 0x74]
je 0x41b61a
mov edx, dword [esp + 4]
xor edi, edi
mov ebx, dword [0x44a4e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xb430e561
je 0x41b600
inc edi
cmp ecx, edi
jne 0x41b5f0
jmp 0x41b61a
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41b61a
push eax
push 4
push ecx
push dword [0x44a4e8]
call fcn.0043c7c0
add esp, 0x10
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x88]
mov ecx, esi
call fcn.0043b400
cmp dword [esp + 0x44], 0
jne 0x41b63f
add ebx, edi
mov edi, dword [ebx]
test edi, edi
jne 0x41ae10
push dword [esp + 0x48]
call fcn.0043af70
add esp, 4
mov eax, dword [esp + 0x44]
jmp 0x41abb0