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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa4
mov dword [esp + 0x4c], 0
mov dword [esp], 0
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov ecx, 0x685cb91f
mov edx, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x685cb91a]
mov edi, eax
xor edi, esi
lea ebx, [edi + edi]
not ebx
add ebx, edi
or ebx, edx
add ebx, ecx
add ebx, ebx
sub esi, ebx
add esi, eax
mov edi, esi
and edi, 0x69
xor esi, 0x69
lea ebx, [esi + edi*2]
inc bl
mov byte [esp + eax - 0x685cb91a], bl
inc eax
inc ecx
dec edx
cmp eax, 0x685cb923
jne 0x41a8f0
mov eax, dword [esp + 4]
mov ecx, dword [0x44d398]
test ecx, ecx
je 0x41a982
xor edx, edx
mov esi, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x89bc83a7
je 0x41a960
inc edx
cmp ecx, edx
jne 0x41a950
jmp 0x41a982
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x41a982
mov eax, esp
push eax
push 0
push 0x28
push 0xfffffffffffffffe
push 0x10
push ecx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x1c
cmp eax, 0xc000007c
jne 0x41aa30
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov ecx, 0x685cb91f
mov edx, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x685cb91a]
mov edi, eax
xor edi, esi
lea ebx, [edi + edi]
not ebx
add ebx, edi
or ebx, edx
add ebx, ecx
add ebx, ebx
sub esi, ebx
add esi, eax
mov edi, esi
and edi, 0x69
xor esi, 0x69
lea ebx, [esi + edi*2]
inc bl
mov byte [esp + eax - 0x685cb91a], bl
inc eax
inc ecx
dec edx
cmp eax, 0x685cb923
jne 0x41a9b0
mov eax, dword [0x44d398]
test eax, eax
je 0x41aa30
mov ecx, dword [esp + 4]
xor edx, edx
mov esi, dword [0x44d39c]
cmp dword [esi + edx*8], 0xeb857808
je 0x41aa10
inc edx
cmp eax, edx
jne 0x41aa00
jmp 0x41aa30
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x41aa30
mov ecx, esp
push ecx
push 0x28
push 0xffffffffffffffff
push 0xc
push eax
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x18
mov ecx, dword [esp]
test ecx, ecx
je 0x41b08e
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov edx, 0x685cb91f
mov esi, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x685cb91a]
mov ebx, eax
xor ebx, edi
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
or ebp, esi
add ebp, edx
add ebp, ebp
sub edi, ebp
add edi, eax
mov ebx, edi
and ebx, 0x69
xor edi, 0x69
lea ebx, [edi + ebx*2]
inc bl
mov byte [esp + eax - 0x685cb91a], bl
inc eax
inc edx
dec esi
cmp eax, 0x685cb923
jne 0x41aa60
mov eax, dword [esp + 4]
mov edx, dword [0x44d398]
test edx, edx
je 0x41aaf5
xor esi, esi
mov edi, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x8869e8e9
je 0x41aad0
inc esi
cmp edx, esi
jne 0x41aac0
jmp 0x41aaf5
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41aaf5
lea eax, [esp + 0x40]
push eax
push 0
push 0
push 1
push ecx
push 0x14
push edx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x20
cmp eax, 0xc0000023
jne 0x41ac11
push dword [esp + 0x40]
call fcn.0043a8b0
add esp, 4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp]
mov dword [esp + 0x5c], ecx
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov edx, 0x685cb91e
mov edi, 0x685cb91f
mov ebx, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edx - 0x685cb91a]
mov ecx, edx
xor ecx, ebp
lea esi, [ecx + ecx]
not esi
add esi, ecx
or esi, ebx
add esi, edi
add esi, esi
sub ebp, esi
add ebp, edx
mov ecx, ebp
and ecx, 0x69
xor ebp, 0x69
lea ecx, [ecx*2]
add ecx, ebp
inc cl
mov byte [esp + edx - 0x685cb91a], cl
inc edx
inc edi
dec ebx
cmp edx, 0x685cb923
jne 0x41ab40
mov ecx, dword [esp + 4]
mov edi, dword [0x44d398]
test edi, edi
je 0x41abe0
xor ebx, ebx
mov ebp, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0x8869e8e9
je 0x41abb1
inc ebx
cmp edi, ebx
jne 0x41aba0
jmp 0x41abe0
mov edi, dword [ebp + ebx*8 + 4]
cmp edi, ecx
je 0x41abe0
lea ecx, [esp + 0x40]
push ecx
push dword [esp + 0x5c]
push eax
push 1
push dword [esp + 0x6c]
push 0x14
push edi
push dword [0x44d3a0]
mov esi, eax
call fcn.0043dc10
add esp, 0x20
mov ecx, eax
mov eax, esi
test ecx, ecx
js 0x41ac08
mov ecx, dword [eax]
test ecx, ecx
je 0x41ac08
cmp byte [ecx], 1
jne 0x41ac08
cmp byte [ecx + 1], 0xf
ja 0x41ac08
cmp byte [ecx + 7], 5
jne 0x41ac08
cmp byte [ecx + 8], 0x12
jne 0x41ac08
mov ecx, dword [esp]
mov dword [esp + 0x4c], ecx
push eax
call fcn.0043a930
add esp, 4
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x41b090
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov eax, dword [0x44c070]
mov dword [esp + 4], 0x93ee91f1
mov dword [esp + 8], 0xafcfad22
mov dword [esp + 0xc], 0xabd3a9d8
mov dword [esp + 0x10], 0xa794a597
mov dword [esp + 0x14], 0xa3dea196
mov dword [esp + 0x18], 0xbfcabdc8
mov dword [esp + 0x1c], 0xb9b8
mov byte [esp + 0x20], 0
mov ecx, 0xeaa0351c
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x155fcae8]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
lea esi, [edx + edx]
and esi, 0xd5bdece6
xor edx, 0x6adef673
mov edi, esi
and edi, edx
xor edx, esi
lea edx, [edx + edi*2]
inc dl
mov byte [esp + ecx + 0x155fcae8], dl
inc ecx
cmp ecx, 0xeaa03539
jne 0x41ac80
lea ecx, [esp + 4]
push 0x800
push 0
push ecx
call eax
lea ecx, [esp + 0x88]
push eax
call fcn.0043bfc0
test al, al
je 0x41ae77
mov dword [esp + 0x78], 1
mov dword [esp + 0x84], 2
push 0x367fa9e7
push dword [esp + 0x8c]
call fcn.0043f980
add esp, 8
mov dword [esp + 4], 0x21b927c9
mov dword [esp + 8], 0xddb523db
mov dword [esp + 0xc], 0xd941df4c
mov dword [esp + 0x10], 0xd557db4a
mov dword [esp + 0x14], 0xd140d745
mov dword [esp + 0x18], 0xcd5ed333
mov dword [esp + 0x1c], 0xc93ecf53
mov dword [esp + 0x20], 0xc551cb5a
mov dword [esp + 0x24], 0xc15dc74a
mov dword [esp + 0x28], 0xfd5dc354
mov dword [esp + 0x2c], 0xf961ff65
mov word [esp + 0x30], 0xfbf8
mov dword [esp + 0x32], 0
xor edx, edx
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx + 4]
mov edi, ecx
or edi, 0x6436aaf9
lea ebx, [edx + edi]
mov ebp, edx
or ebp, 0x9bc95506
and ebp, edi
not ebp
lea edi, [ebx*2 + 2]
add edi, ebp
xor edi, esi
mov esi, edi
and esi, 0x22
xor edi, 0x22
lea ebx, [edi + esi*2]
inc bl
mov byte [esp + edx + 4], bl
lea esi, [edx + 1]
dec ecx
mov edx, esi
cmp esi, 0x32
jne 0x41ad80
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 8]
push ecx
push 0
call eax
test eax, eax
je 0x41aff7
mov ecx, dword [esp]
mov dword [esp + 0x68], 0xb4b58a8b
mov byte [esp + 0x6c], 0
mov eax, 0x685cb91e
mov edx, 0x685cb91f
mov esi, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x685cb8b6]
mov ebx, eax
xor ebx, edi
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
or ebp, esi
add ebp, edx
add ebp, ebp
sub edi, ebp
add edi, eax
mov ebx, edi
and ebx, 0x69
xor edi, 0x69
lea ebx, [edi + ebx*2]
inc bl
mov byte [esp + eax - 0x685cb8b6], bl
inc eax
inc edx
dec esi
cmp eax, 0x685cb923
jne 0x41ae00
mov eax, dword [esp + 0x68]
mov edx, dword [0x44d398]
test edx, edx
je 0x41af3e
xor esi, esi
mov edi, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x845fa972
je 0x41af17
inc esi
cmp edx, esi
jne 0x41ae60
jmp 0x41af3e
mov ecx, dword [esp]
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov edx, 0x685cb91f
mov esi, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x685cb91a]
mov ebx, eax
xor ebx, edi
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
or ebp, esi
add ebp, edx
add ebp, ebp
sub edi, ebp
add edi, eax
mov ebx, edi
and ebx, 0x69
xor edi, 0x69
lea ebx, [edi + ebx*2]
inc bl
mov byte [esp + eax - 0x685cb91a], bl
inc eax
inc edx
dec esi
cmp eax, 0x685cb923
jne 0x41aea0
mov eax, dword [0x44d398]
test eax, eax
je 0x41b08e
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x41b09b
inc esi
cmp eax, esi
jne 0x41af00
jmp 0x41b08e
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41af3e
lea eax, [esp + 0x78]
push 0
push 0
push 0x10
push eax
push 0
push ecx
push 0x18
push edx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x24
test eax, eax
js 0x41aff7
push dword [esp + 0x88]
call dword [0x44c184]
mov eax, dword [esp]
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov ecx, 0x685cb91e
mov edx, 0x685cb91f
mov esi, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x685cb91a]
mov ebx, ecx
xor ebx, edi
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
or ebp, esi
add ebp, edx
add ebp, ebp
sub edi, ebp
add edi, ecx
mov ebx, edi
and ebx, 0x69
xor edi, 0x69
lea ebx, [edi + ebx*2]
inc bl
mov byte [esp + ecx - 0x685cb91a], bl
inc ecx
inc edx
dec esi
cmp ecx, 0x685cb923
jne 0x41af80
mov ecx, dword [0x44d398]
test ecx, ecx
je 0x41b0d5
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x41b0bb
inc esi
cmp ecx, esi
jne 0x41afe0
jmp 0x41b0d5
push dword [esp + 0x88]
call dword [0x44c184]
mov ecx, dword [esp]
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov edx, 0x685cb91f
mov esi, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x685cb91a]
mov ebx, eax
xor ebx, edi
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
or ebp, esi
add ebp, edx
add ebp, ebp
sub edi, ebp
add edi, eax
mov ebx, edi
and ebx, 0x69
xor edi, 0x69
lea ebx, [edi + ebx*2]
inc bl
mov byte [esp + eax - 0x685cb91a], bl
inc eax
inc edx
dec esi
cmp eax, 0x685cb923
jne 0x41b030
mov eax, dword [0x44d398]
test eax, eax
je 0x41b08e
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44d39c]
cmp dword [edi + esi*8], 0x1b6183f2
je 0x41b09b
inc esi
cmp eax, esi
jne 0x41b080
xor eax, eax
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [edi + esi*8 + 4]
xor eax, eax
cmp esi, edx
je 0x41b090
push ecx
push 4
push esi
push dword [0x44d3a0]
call fcn.0043dc10
xor eax, eax
add esp, 0x10
jmp 0x41b090
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x41b0d5
push eax
push 4
push ecx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x10
mov dword [esp + 0x64], 0
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov ecx, 0x685cb91f
mov edx, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x685cb91a]
mov edi, eax
xor edi, esi
lea ebx, [edi + edi]
not ebx
add ebx, edi
or ebx, edx
add ebx, ecx
add ebx, ebx
sub esi, ebx
add esi, eax
mov edi, esi
and edi, 0x69
xor esi, 0x69
lea ebx, [esi + edi*2]
inc bl
mov byte [esp + eax - 0x685cb91a], bl
inc eax
inc ecx
dec edx
cmp eax, 0x685cb923
jne 0x41b100
mov eax, dword [esp + 4]
mov ecx, dword [0x44d398]
test ecx, ecx
je 0x41b194
xor edx, edx
mov esi, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x61813e67
je 0x41b170
inc edx
cmp ecx, edx
jne 0x41b160
jmp 0x41b194
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x41b194
lea eax, [esp + 0x64]
push eax
push 0
push 0
push 5
push 0x10
push ecx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x1c
mov dword [esp + 4], 0x5f9e999c
mov dword [esp + 8], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 4
mov ebx, edx
xor ebx, 0x1a
add ebx, esi
xor bl, byte [esp + edx + 4]
add bl, 0x7e
mov byte [esp + edx + 4], bl
inc edx
add ecx, 2
cmp edx, 8
jne 0x41b1b0
cmp eax, dword [esp + 4]
jne 0x41b9e1
push dword [esp + 0x64]
call fcn.0043a8b0
add esp, 4
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov edx, 0x685cb91f
mov esi, 0x17a346e1
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x685cb91a]
mov ebx, eax
xor ebx, edi
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
or ebp, esi
add ebp, edx
add ebp, ebp
sub edi, ebp
add edi, eax
mov ebx, edi
and ebx, 0x69
xor edi, 0x69
lea ebx, [edi + ebx*2]
inc bl
mov byte [esp + eax - 0x685cb91a], bl
inc eax
inc edx
dec esi
cmp eax, 0x685cb923
jne 0x41b210
mov eax, dword [esp + 4]
mov edx, dword [0x44d398]
test edx, edx
je 0x41b2a2
xor esi, esi
mov edi, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x61813e67
je 0x41b280
inc esi
cmp edx, esi
jne 0x41b270
jmp 0x41b2a2
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41b2a2
push 0
push ecx
push dword [esp + 0x5c]
push 5
push 0x10
push edx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x1c
test eax, eax
js 0x41b9d5
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x54]
mov edi, dword [eax]
lea esi, [esp + 0x68]
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebx + edi + 0x44]
mov dword [esp + 0x70], eax
mov ecx, esi
push 0x1000
call fcn.0043ace0
test eax, eax
js 0x41b9b9
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov ebp, 0x685cb91e
mov edx, 0x685cb91f
mov edi, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ebp - 0x685cb91a]
mov eax, ebp
xor eax, ebx
lea ecx, [eax + eax]
not ecx
add ecx, eax
or ecx, edi
add ecx, edx
add ecx, ecx
sub ebx, ecx
add ebx, ebp
mov eax, ebx
and eax, 0x69
xor ebx, 0x69
lea eax, [ebx + eax*2]
inc al
mov byte [esp + ebp - 0x685cb91a], al
inc ebp
inc edx
dec edi
cmp ebp, 0x685cb923
jne 0x41b330
mov eax, dword [esp + 4]
mov edx, dword [0x44d398]
test edx, edx
je 0x41b3c4
xor edi, edi
mov ebx, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xeb857808
je 0x41b3a0
inc edi
cmp edx, edi
jne 0x41b390
jmp 0x41b3c4
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41b3c4
lea eax, [esp + 0x48]
push eax
push 0xa
push dword [esp + 0x44]
push 0xc
push edx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x18
test eax, eax
js 0x41b9aa
mov esi, dword [esp + 0x48]
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov eax, 0x685cb91e
mov edx, 0x685cb91f
mov edi, 0x17a346e1
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x685cb91a]
mov ebp, eax
xor ebp, ebx
lea ecx, [ebp*2]
not ecx
add ecx, ebp
or ecx, edi
add ecx, edx
add ecx, ecx
sub ebx, ecx
add ebx, eax
mov ecx, ebx
and ecx, 0x69
xor ebx, 0x69
lea ecx, [ebx + ecx*2]
inc cl
mov byte [esp + eax - 0x685cb91a], cl
inc eax
inc edx
dec edi
cmp eax, 0x685cb923
jne 0x41b3f0
mov eax, dword [esp + 4]
mov edx, dword [0x44d398]
test edx, edx
je 0x41b485
xor edi, edi
mov ebx, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x8869e8e9
je 0x41b460
inc edi
cmp edx, edi
jne 0x41b450
jmp 0x41b485
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41b485
lea eax, [esp + 0x40]
push eax
push 0
push 0
push 1
push esi
push 0x14
push edx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x20
cmp eax, 0xc0000023
jne 0x41b8fd
push dword [esp + 0x40]
call fcn.0043a8b0
add esp, 4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], ecx
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov ecx, 0x685cb91e
mov edi, 0x685cb91f
mov edx, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x685cb91a]
mov ebp, ecx
xor ebp, ebx
lea esi, [ebp*2]
not esi
add esi, ebp
or esi, edx
add esi, edi
add esi, esi
sub ebx, esi
add ebx, ecx
mov esi, ebx
and esi, 0x69
xor ebx, 0x69
lea ebx, [ebx + esi*2]
inc bl
mov byte [esp + ecx - 0x685cb91a], bl
inc ecx
inc edi
dec edx
cmp ecx, 0x685cb923
jne 0x41b4d0
mov ecx, dword [esp + 4]
mov edx, dword [0x44d398]
test edx, edx
je 0x41b56f
xor edi, edi
mov ebx, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x8869e8e9
je 0x41b540
inc edi
cmp edx, edi
jne 0x41b530
jmp 0x41b56f
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
je 0x41b56f
lea ecx, [esp + 0x40]
push ecx
push dword [esp + 0x3c]
push eax
push 1
push dword [esp + 0x4c]
push 0x14
push edx
push dword [0x44d3a0]
mov edi, eax
call fcn.0043dc10
add esp, 0x20
mov ecx, eax
mov eax, edi
test ecx, ecx
js 0x41b8f4
mov ecx, dword [eax]
test ecx, ecx
je 0x41b8f4
cmp byte [ecx], 1
jne 0x41b8f4
cmp byte [ecx + 1], 0xf
ja 0x41b8f4
cmp byte [ecx + 7], 5
jne 0x41b8f4
cmp byte [ecx + 8], 0x12
jne 0x41b8f4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], ecx
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov ecx, 0x685cb91e
mov edi, 0x685cb91f
mov ebx, 0x17a346e1
movzx edx, byte [esp + ecx - 0x685cb91a]
mov esi, ecx
xor esi, edx
lea ebp, [esi + esi]
not ebp
add ebp, esi
or ebp, ebx
add ebp, edi
add ebp, ebp
sub edx, ebp
add edx, ecx
mov esi, edx
and esi, 0x69
xor edx, 0x69
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx - 0x685cb91a], dl
inc ecx
inc edi
dec ebx
cmp ecx, 0x685cb923
jne 0x41b5cc
mov ecx, dword [esp + 4]
mov edx, dword [0x44d398]
test edx, edx
je 0x41b65c
xor edi, edi
mov ebx, dword [0x44d39c]
cmp dword [ebx + edi*8], 0x8869e8e9
je 0x41b62e
inc edi
cmp edx, edi
jne 0x41b61e
jmp 0x41b65c
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
je 0x41b65c
lea ecx, [esp + 0x60]
push ecx
push 0
push 0
push 3
push dword [esp + 0x4c]
push 0x14
push edx
push dword [0x44d3a0]
mov edi, eax
call fcn.0043dc10
add esp, 0x20
mov ecx, eax
mov eax, edi
cmp ecx, 0xc0000023
jne 0x41b8f4
mov dword [esp + 0x3c], eax
push dword [esp + 0x60]
call fcn.0043a8b0
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov ecx, 0x685cb91e
mov edi, 0x685cb91f
mov edx, 0x17a346e1
movzx ebx, byte [esp + ecx - 0x685cb91a]
mov esi, ecx
xor esi, ebx
lea ebp, [esi + esi]
not ebp
add ebp, esi
or ebp, edx
add ebp, edi
add ebp, ebp
sub ebx, ebp
add ebx, ecx
mov esi, ebx
and esi, 0x69
xor ebx, 0x69
lea ebx, [ebx + esi*2]
inc bl
mov byte [esp + ecx - 0x685cb91a], bl
inc ecx
inc edi
dec edx
cmp ecx, 0x685cb923
jne 0x41b6a4
mov ecx, dword [esp + 4]
mov edx, dword [0x44d398]
test edx, edx
je 0x41b708
xor edi, edi
mov ebx, dword [0x44d39c]
mov esi, eax
cmp dword [ebx + edi*8], 0x8869e8e9
je 0x41b70c
inc edi
cmp edx, edi
jne 0x41b6f8
jmp 0x41b739
mov esi, eax
jmp 0x41b739
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
je 0x41b739
lea ecx, [esp + 0x60]
push ecx
push dword [esp + 0x54]
push esi
push 3
push dword [esp + 0x48]
push 0x14
push edx
push dword [0x44d3a0]
mov edi, esi
call fcn.0043dc10
add esp, 0x20
mov ecx, eax
test ecx, ecx
js 0x41b8e7
mov ecx, dword [esi]
test ecx, ecx
je 0x41b8e7
movzx edx, byte [esp + 0x7c]
mov dh, byte [esp + 0x7d]
movzx ebx, byte [esp + 0x7e]
movzx eax, byte [esp + 0x7f]
mov bh, byte [esp + 0x80]
mov byte [esp + 0x38], bh
mov bh, byte [esp + 0x81]
mov ah, byte [esp + 0x82]
mov byte [esp + 0x50], ah
mov ah, byte [esp + 0x83]
mov byte [esp + 0x47], ah
mov edi, esi
add edi, 0xb
jmp 0x41b797
add edi, 0xc
dec ecx
je 0x41b8e7
cmp byte [edi - 7], dl
jne 0x41b78d
cmp byte [edi - 6], dh
jne 0x41b78d
cmp byte [edi - 5], bl
jne 0x41b78d
cmp byte [edi - 4], al
jne 0x41b78d
mov ah, byte [esp + 0x38]
cmp byte [edi - 3], ah
jne 0x41b78d
cmp byte [edi - 2], bh
jne 0x41b78d
mov ah, byte [esp + 0x50]
cmp byte [edi - 1], ah
jne 0x41b78d
mov ah, byte [esp + 0x47]
cmp byte [edi], ah
jne 0x41b78d
mov dword [esp + 0x38], esi
mov dword [esp + 0x98], 0xc
mov dword [esp + 0x9c], 2
mov word [esp + 0xa0], 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 + 0x98]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x90], 0xb4b58a8b
mov byte [esp + 0x94], 0
mov eax, 0x685cb91e
mov edx, 0x685cb91f
mov edi, 0x17a346e1
movzx ebx, byte [esp + eax - 0x685cb88e]
mov esi, eax
xor esi, ebx
lea ebp, [esi + esi]
not ebp
add ebp, esi
or ebp, edi
add ebp, edx
add ebp, ebp
sub ebx, ebp
add ebx, eax
mov esi, ebx
and esi, 0x69
xor ebx, 0x69
lea ebx, [ebx + esi*2]
inc bl
mov byte [esp + eax - 0x685cb88e], bl
inc eax
inc edx
dec edi
cmp eax, 0x685cb923
jne 0x41b846
mov eax, dword [esp + 0x90]
mov edx, dword [0x44d398]
test edx, edx
je 0x41b8d7
xor edi, edi
mov ebx, dword [0x44d39c]
cmp dword [ebx + edi*8], 0xa6d9b1ac
je 0x41b8aa
inc edi
cmp edx, edi
jne 0x41b89a
jmp 0x41b8d7
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41b8d7
lea eax, [esp + 0x4c]
push eax
push 2
push 0
lea eax, [esp + 0x10]
push eax
push 0x2000000
push ecx
push 0x18
push edx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x24
test eax, eax
jns 0x41b8e3
mov dword [esp + 0x4c], 0
mov esi, dword [esp + 0x38]
push esi
call fcn.0043a930
add esp, 4
mov eax, dword [esp + 0x3c]
push eax
call fcn.0043a930
add esp, 4
mov eax, dword [esp + 0x48]
mov dword [esp + 4], 0xb4b58a8b
mov byte [esp + 8], 0
mov ecx, 0x685cb91e
mov edx, 0x685cb91f
mov edi, 0x17a346e1
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x685cb91a]
mov esi, ecx
xor esi, ebx
lea ebp, [esi + esi]
not ebp
add ebp, esi
or ebp, edi
add ebp, edx
add ebp, ebp
sub ebx, ebp
add ebx, ecx
mov esi, ebx
and esi, 0x69
xor ebx, 0x69
lea ebx, [ebx + esi*2]
inc bl
mov byte [esp + ecx - 0x685cb91a], bl
inc ecx
inc edx
dec edi
cmp ecx, 0x685cb923
jne 0x41b920
mov ecx, dword [0x44d398]
test ecx, ecx
lea esi, [esp + 0x68]
je 0x41b9aa
mov edx, dword [esp + 4]
xor edi, edi
mov ebx, dword [0x44d39c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x1b6183f2
je 0x41b990
inc edi
cmp ecx, edi
jne 0x41b980
jmp 0x41b9aa
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41b9aa
push eax
push 4
push ecx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x10
mov ecx, esi
call fcn.0043ae40
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
cmp dword [esp + 0x4c], 0
jne 0x41b9cc
add ebx, edi
mov edi, dword [ebx]
test edi, edi
jne 0x41b2e0
lea ecx, [esp + 0x68]
call fcn.0043ae40
push dword [esp + 0x54]
call fcn.0043a930
add esp, 4
mov eax, dword [esp + 0x4c]
jmp 0x41b090