Function at 0x405ed0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov esi, esp
mov eax, dword [ebp + 8]
mov edx, 0x447c6c
mov ecx, eax
call fcn.00406ed0
mov edi, dword [ebp + 0xc]
mov bl, 1
call fcn.00406ee0
mov eax, 0
call fcn.00406ef0
mov eax, 0xf3237a34
call fcn.00406f00
mov eax, dword [0x80a094]
call fcn.00406f10
call fcn.00406f20
mov dword [esi + 0xbc], eax
call fcn.00406f30
add eax, 0
sub eax, 1
add eax, 0xcdc85cc
call fcn.00406f40
mov eax, dword [esi + 0xc8]
mov dword [esi + 0xb4], ecx
mov ecx, dword [esi + 0xb8]
sub eax, ecx
call fcn.00406f50
sub ecx, eax
mov eax, dword [esi + 0xc0]
imul eax, ecx
and eax, 1
cmp eax, 0
sete bh
mov eax, dword [esi + 0xbc]
cmp eax, 0xa
setl al
mov ah, al
xor ah, 1
mov cl, bh
xor cl, ah
and cl, bh
mov ah, bh
xor ah, 1
mov ch, al
and ch, ah
xor al, 1
and bh, al
or ch, bh
mov al, cl
xor al, 1
mov ah, ch
xor ah, 1
xor bl, 0
mov bh, al
and bh, 0
and cl, bl
mov byte [esi + 0xb3], al
mov al, ah
and al, 0
and ch, bl
or bh, cl
or al, ch
xor bh, al
mov al, byte [esi + 0xb3]
or al, ah
xor al, 1
or bl, 0
and al, bl
or bh, al
test bh, 1
mov dword [esi + 0xac], edx
mov dword [esi + 0xa8], edi
jne 0x405fe9
jmp 0x406db4
mov al, 1
mov ecx, 0
mov edx, 4
mov byte [esi + 0xa7], al
mov eax, edx
mov dword [esi + 0xa0], edx
call fcn.00406f60
call fcn.004487b0
mov eax, esp
call fcn.00406f70
mov dword [esi + 0x98], eax
mov eax, ecx
call fcn.004487b0
mov eax, esp
call fcn.00406f80
mov dword [esi + 0x94], eax
mov eax, esi
mov eax, ecx
call fcn.004487b0
mov eax, esp
mov ecx, dword [esi + 0xa0]
mov dword [esi + 0x90], eax
mov eax, 0x447c30
mov eax, ecx
call fcn.004487b0
mov eax, esp
mov ecx, dword [esi + 0xa0]
call fcn.00406f90
mov eax, ecx
call fcn.004487b0
mov eax, esp
and eax, 0xfffffff8
mov ecx, 0x100
mov esp, eax
mov ecx, dword [esi + 0xa0]
call fcn.00406fa0
mov eax, ecx
call fcn.004487b0
mov eax, esp
and eax, 0xfffffff8
mov ecx, ebx
mov esp, eax
mov ecx, dword [esi + 0xa0]
mov dword [esi + 0x84], eax
mov eax, 0x3ff
mov eax, ecx
call fcn.004487b0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, 0x10
mov dword [esi + 0x80], eax
mov eax, 0x8000
mov eax, ecx
call fcn.004487b0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, 0x80
mov dword [esi + 0x7c], eax
mov eax, ecx
call fcn.004487b0
mov eax, 0x447c6c
mov eax, esp
mov ecx, 0x18
mov dword [esi + 0x78], eax
mov eax, ecx
call fcn.00406fb0
call fcn.004487b0
mov eax, 0x447c90
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x70], eax
mov eax, ecx
call fcn.004487b0
mov eax, ebx
mov eax, esp
and eax, 0xfffffff8
mov edx, 0x1ff
mov esp, eax
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0xac]
mov dword [ecx], edx
call fcn.00406fc0
mov ebx, dword [esi + 0xa8]
call fcn.00406fd0
cmp dword [0x7f9b00], 0
setne cl
mov edx, dword [0x80a094]
mov edi, dword [0x80a090]
mov ebx, dword [esi + 0x9c]
sub ebx, 1
add ebx, 0
mov dword [esi + 0x6c], eax
call fcn.00406fe0
sub eax, ebx
mov ebx, edx
sub ebx, eax
imul edx, ebx
and edx, 1
cmp edx, 0
sete ch
cmp edi, 0xa
setl al
mov ah, al
xor ah, 1
mov dl, ch
xor dl, ah
and dl, ch
mov ah, ch
xor ah, 1
and ah, 0
mov dh, byte [esi + 0xa7]
xor dh, 0
and ch, dh
mov bl, al
xor bl, 1
and bl, 0
and al, dh
or ah, ch
or bl, al
xor ah, bl
mov al, dl
and al, ah
xor dl, ah
or al, dl
test al, 1
mov byte [esi + 0x6b], cl
jne 0x4061d2
jmp 0x406db4
mov al, byte [esi + 0x6b]
test al, 1
jne 0x40662f
jmp 0x4061e2
sub esp, 4
mov eax, esp
mov dword [eax], 0x7fa142
call fcn.00406ff0
call eax
call fcn.00407000
cmp eax, 0
jne 0x406209
call fcn.004493e1
mov al, 1
mov ecx, dword [0x80a094]
mov edx, dword [0x80a090]
mov edi, ecx
sub edi, 0x55380d2d
add edi, 0x8e75bd9d
sub edi, 0xaac7f2d3
add edi, 0xe245408c
sub edi, 1
add edi, 0x1dbabf74
sub edi, 0x2c5198b4
add edi, 0x718a4263
add edi, 0x2c5198b4
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
and bh, 1
mov cl, al
xor cl, 1
mov ch, ah
and ch, cl
or bh, ch
mov cl, bl
xor cl, 1
and cl, 1
mov ch, al
xor ch, 1
mov dl, bl
and dl, ch
or cl, dl
mov dl, al
xor dl, 1
and dl, 0
mov ch, al
xor ch, 0
mov dh, ch
and dh, 1
mov byte [esi + 0x6a], al
xor al, 1
and al, 0
and ch, 1
or dl, dh
or al, ch
xor dl, al
mov al, bh
xor al, 1
mov ch, byte [esi + 0x6a]
xor ch, 1
mov dh, byte [esi + 0x6a]
xor dh, 0
or al, ch
or dh, 0
xor al, 1
and al, dh
mov ch, dl
xor ch, 1
mov dh, ah
xor dh, ch
and dh, ah
mov ah, byte [esi + 0x6a]
xor ah, 1
mov ch, cl
xor ch, ah
and ch, cl
mov ah, dl
xor ah, 1
mov byte [esi + 0x69], al
mov al, bl
xor al, ah
and al, bl
mov ah, byte [esi + 0x69]
and ah, dh
mov bl, byte [esi + 0x69]
xor bl, dh
or ah, bl
mov dh, ch
xor dh, 1
mov bl, al
xor bl, 1
mov byte [esi + 0x68], al
mov al, byte [esi + 0x6a]
xor al, 1
mov byte [esi + 0x67], al
mov al, dh
and al, 1
mov byte [esi + 0x66], al
mov al, byte [esi + 0x67]
and ch, al
mov al, bl
and al, 1
mov byte [esi + 0x65], al
mov al, byte [esi + 0x68]
mov byte [esi + 0x64], cl
mov cl, byte [esi + 0x67]
and al, cl
mov cl, byte [esi + 0x66]
or cl, ch
mov ch, byte [esi + 0x65]
or ch, al
xor cl, ch
or dh, bl
xor dh, 1
mov al, byte [esi + 0x67]
or al, 1
and dh, al
or cl, dh
mov al, ah
xor al, 1
mov ch, cl
and ch, al
xor cl, 1
and ah, cl
or ch, ah
mov al, bh
xor al, 1
mov cl, byte [esi + 0x64]
xor cl, 1
mov ah, byte [esi + 0x6a]
xor ah, 0
mov dh, al
and dh, 0
and bh, ah
mov bl, cl
and bl, 0
mov byte [esi + 0x63], al
mov al, byte [esi + 0x64]
and al, ah
or dh, bh
or bl, al
xor dh, bl
mov al, byte [esi + 0x63]
or al, cl
xor al, 1
or ah, 0
and al, ah
or dh, al
mov al, dh
xor al, 1
and al, 1
mov cl, byte [esi + 0x6a]
xor cl, 1
and dh, cl
mov ah, byte [esi + 0x6a]
xor ah, 1
and ah, 1
and cl, 1
or al, dh
or ah, cl
xor al, ah
mov cl, dl
and cl, 1
xor dl, 1
or cl, dl
xor cl, 1
mov dl, al
xor dl, cl
and dl, al
mov al, ch
and al, dl
xor ch, dl
or al, ch
test al, 1
jne 0x4063d8
jmp 0x406dec
mov eax, dword [0x7f9b00]
sub esp, 8
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], 0x7fa168
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
call fcn.00407010
call fcn.00407020
sub esp, 8
mov ecx, ebx
mov ecx, esp
mov dword [ecx], eax
call fcn.00407030
call fcn.00407040
call eax
call fcn.00407050
mov eax, dword [0x7f9b00]
sub esp, 8
mov ecx, esp
mov dword [ecx], eax
call fcn.00407060
call fcn.00407070
call eax
call fcn.00407080
mov eax, dword [str.Lwa_]
sub esp, 4
mov ecx, esp
call fcn.00407090
call eax
mov dl, 1
mov ecx, 0
mov edi, dword [0x80a094]
mov ebx, dword [0x80a090]
mov dword [esi + 0x5c], eax
mov eax, edi
sub eax, 0x70f8e005
sub eax, 0x162a258c
add eax, 0x70f8e005
sub ecx, 1
add eax, ecx
sub eax, 0x6e21bb01
add eax, 0x162a258c
sub eax, 0x91de44ff
imul edi, eax
and edi, 1
cmp edi, 0
sete dh
cmp ebx, 0xa
setl al
mov ah, dh
xor ah, 1
and ah, 1
mov cl, dl
xor cl, 1
mov ch, dh
and ch, cl
or ah, ch
mov cl, al
xor cl, 1
and cl, 0
mov ch, dl
xor ch, 0
mov bl, al
and bl, ch
mov bh, dl
xor bh, 1
and bh, 0
and ch, 1
or cl, bl
or bh, ch
xor cl, bh
mov ch, dl
xor ch, 0
and ch, 0
mov bl, dl
xor bl, 0
mov bh, bl
and bh, 0
mov byte [esi + 0x5b], al
mov al, dl
xor al, 1
and al, 0
and bl, 1
or ch, bh
or al, bl
xor ch, al
mov al, dl
xor al, 0
mov bl, ah
xor bl, al
and bl, ah
mov al, ch
xor al, 1
mov bh, dh
xor bh, al
and bh, dh
mov al, cl
xor al, 1
mov dh, dl
xor dh, 0
mov byte [esi + 0x5a], al
mov al, dl
xor al, 1
mov byte [esi + 0x59], al
mov al, byte [esi + 0x5a]
or al, dh
mov dh, byte [esi + 0x59]
or dh, 1
xor al, 1
and al, dh
mov dh, byte [esi + 0x5b]
xor dh, 1
mov byte [esi + 0x58], al
mov al, ch
xor al, 1
mov byte [esi + 0x57], al
mov al, dl
xor al, 0
mov byte [esi + 0x56], al
mov al, byte [esi + 0x57]
or dh, al
mov al, byte [esi + 0x56]
or al, 0
xor dh, 1
and dh, al
mov al, bl
xor al, 1
mov byte [esi + 0x55], al
mov al, bh
xor al, 1
mov byte [esi + 0x54], al
mov al, dl
xor al, 1
mov byte [esi + 0x53], al
mov al, byte [esi + 0x55]
and al, 1
mov byte [esi + 0x52], al
mov al, byte [esi + 0x53]
and bl, al
mov al, byte [esi + 0x54]
and al, 1
mov byte [esi + 0x51], al
mov al, byte [esi + 0x53]
and bh, al
mov al, byte [esi + 0x52]
or al, bl
mov bl, byte [esi + 0x51]
or bl, bh
xor al, bl
mov bl, byte [esi + 0x55]
mov bh, byte [esi + 0x54]
or bl, bh
xor bl, 1
mov bh, byte [esi + 0x53]
or bh, 1
and bl, bh
or al, bl
mov bl, byte [esi + 0x58]
and bl, dh
mov bh, byte [esi + 0x58]
xor bh, dh
or bl, bh
mov dh, al
xor dh, 1
and dh, 0
mov bh, dl
xor bh, 0
and al, bh
mov byte [esi + 0x50], al
mov al, bl
xor al, 1
and al, 0
and bl, bh
mov bh, byte [esi + 0x50]
or dh, bh
or al, bl
xor dh, al
mov al, ah
and al, cl
xor ah, cl
or al, ah
mov cl, al
xor cl, 1
and cl, 0
mov ah, dl
xor ah, 0
and al, ah
mov bl, dl
xor bl, 1
and bl, 0
and ah, 1
or cl, al
or bl, ah
xor cl, bl
mov al, ch
and al, 0
xor ch, 0
or al, ch
xor cl, 1
xor al, 1
xor dl, 0
or cl, al
or dl, 0
xor cl, 1
and cl, dl
mov al, dh
and al, cl
xor dh, cl
or al, dh
test al, 1
jne 0x40662a
jmp 0x406dec
jmp 0x40662f
mov eax, 0x61ba2da8
pushfd
add eax, 0x9e45d292
popfd
mov ecx, dword [esi + 0x94]
mov edx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], 0x3a
mov dword [esi + 0x4c], eax
call fcn.00449250
add esp, 8
mov ecx, dword [esi + 0x90]
call fcn.004070a0
cmp dword [ecx], 0
je 0x40669b
mov eax, dword [esi + 0x90]
call fcn.004070b0
add ecx, 1
sub esp, 4
mov dword [esp], ecx
call fcn.00449103
add esp, 4
mov dword [esi + 0x48], eax
jmp 0x4066aa
mov eax, 0
call fcn.004070c0
jmp 0x4066aa
call fcn.004070d0
mov ecx, dword [esi + 0x8c]
call fcn.004070e0
sub esp, 8
mov eax, esp
call fcn.004070f0
call fcn.00407100
call fcn.00407110
mov ecx, 0x80857c
call fcn.0048d300
call fcn.00407120
mov ecx, dword [eax]
mov edx, dword [esi + 0x88]
call fcn.00407130
sub esp, 4
mov ecx, esp
mov edi, dword [esi + 0x80]
mov dword [ecx], edi
mov ecx, 0x80857c
call fcn.0048d570
mov eax, dword [esi + 0x80]
sub esp, 4
mov ecx, eax
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esi + 0x88]
call fcn.00423700
test al, 1
jne 0x406728
jmp 0x406752
mov ecx, dword [esi + 0x88]
call fcn.0048d5d0
add eax, 4
sub esp, 4
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esi + 0xcc]
call fcn.00410ad0
mov dword [esi + 0x44], eax
jmp 0x406da6
mov al, 1
mov ecx, 0
mov edx, dword [0x80a094]
mov edi, dword [0x80a090]
mov ebx, ecx
sub ebx, 0xc182cc86
add ebx, 0xffffffff
sub ebx, 0x3e7d337a
sub ecx, ebx
mov ebx, 0x3fff
mov ebx, edx
sub ebx, ecx
imul edx, ebx
and edx, 1
cmp edx, 0
sete ah
cmp edi, 0xa
setl cl
mov ch, cl
xor ch, 1
mov dl, ah
xor dl, ch
and dl, ah
mov ch, ah
xor ch, 1
and ch, 1
xor al, 1
and ah, al
mov dh, cl
xor dh, 1
and dh, 1
and cl, al
or ch, ah
or dh, cl
xor ch, dh
mov al, dl
and al, ch
xor dl, ch
or al, dl
test al, 1
jne 0x4067db
jmp 0x406e6a
mov eax, dword [0x7f9b08]
sub esp, 4
mov ecx, esp
mov edx, dword [esi + 0x7c]
call fcn.00407140
call eax
mov bl, 1
mov ecx, 0x56ec50
mov ecx, dword [ecx]
cmp eax, 0
setge bh
mov eax, dword [0x80a094]
mov edx, dword [0x80a090]
mov edi, ecx
sub edi, 0x77e4f3a9
mov dword [esi + 0x40], eax
sub eax, edi
sub ecx, 1
add eax, ecx
add eax, 0xa6c833bb
add eax, 0x881b0c57
sub eax, 0xa6c833bb
mov ecx, dword [esi + 0x40]
imul ecx, eax
and ecx, 1
cmp ecx, 0
sete al
cmp edx, 0xa
setl ah
mov cl, al
xor cl, 1
and cl, 1
mov ch, bl
xor ch, 1
mov dl, al
and dl, ch
mov dh, bl
xor dh, 1
and dh, 1
and ch, 1
or cl, dl
or dh, ch
xor cl, dh
mov dl, ah
xor dl, 1
and dl, 0
mov ch, bl
xor ch, 0
mov dh, ah
and dh, ch
mov byte [esi + 0x3f], al
mov al, bl
xor al, 1
and al, 0
and ch, 1
or dl, dh
or al, ch
xor dl, al
mov al, bl
xor al, 0
and al, 1
mov ch, bl
xor ch, 1
and ch, 0
or al, ch
mov ch, cl
xor ch, 1
mov dh, bl
xor dh, 0
mov byte [esi + 0x3e], al
mov al, bl
xor al, 1
or ch, dh
or al, 1
xor ch, 1
and ch, al
mov al, byte [esi + 0x3e]
xor al, 1
mov dh, byte [esi + 0x3f]
xor dh, al
mov al, byte [esi + 0x3f]
and dh, al
mov al, dl
xor al, 1
mov byte [esi + 0x3d], al
mov al, bl
xor al, 0
mov byte [esi + 0x3c], al
mov al, bl
xor al, 1
mov byte [esi + 0x3b], al
mov al, byte [esi + 0x3d]
mov byte [esi + 0x3a], cl
mov cl, byte [esi + 0x3c]
or al, cl
mov cl, byte [esi + 0x3b]
or cl, 1
xor al, 1
and al, cl
xor ah, 1
mov cl, byte [esi + 0x3e]
xor cl, 1
mov byte [esi + 0x39], al
mov al, bl
xor al, 0
or ah, cl
or al, 0
xor ah, 1
and ah, al
mov al, ch
xor al, 1
mov cl, dh
xor cl, 1
mov byte [esi + 0x38], al
mov al, bl
xor al, 1
mov byte [esi + 0x37], al
mov al, byte [esi + 0x38]
and al, 1
mov byte [esi + 0x36], al
mov al, byte [esi + 0x37]
and ch, al
mov al, cl
and al, 1
mov byte [esi + 0x35], al
mov al, byte [esi + 0x37]
and dh, al
mov al, byte [esi + 0x36]
or al, ch
mov ch, byte [esi + 0x35]
or ch, dh
xor al, ch
mov ch, byte [esi + 0x38]
or ch, cl
xor ch, 1
mov cl, byte [esi + 0x37]
or cl, 1
and ch, cl
or al, ch
mov cl, byte [esi + 0x39]
and cl, ah
mov ch, byte [esi + 0x39]
xor ch, ah
or cl, ch
mov ah, al
xor ah, 1
and ah, 1
mov ch, bl
xor ch, 1
and al, ch
mov dh, cl
xor dh, 1
and dh, 1
and cl, ch
or ah, al
or dh, cl
xor ah, dh
mov al, byte [esi + 0x3a]
and al, dl
mov cl, byte [esi + 0x3a]
xor cl, dl
or al, cl
mov cl, al
xor cl, 1
and cl, 0
mov dl, bl
xor dl, 0
and al, dl
xor bl, 1
and bl, 0
and dl, 1
or cl, al
or bl, dl
xor cl, bl
mov al, byte [esi + 0x3e]
and al, 0
mov dl, byte [esi + 0x3e]
xor dl, 0
or al, dl
xor al, 1
mov dl, cl
xor dl, al
and dl, cl
mov al, ah
and al, dl
xor ah, dl
or al, ah
test al, 1
mov byte [esi + 0x34], bh
jne 0x4069db
jmp 0x406e6a
mov al, byte [esi + 0x34]
test al, 1
jne 0x4069eb
jmp 0x406da1
call fcn.00407150
mov word [eax], 0
mov ecx, dword [0x7f9b0c]
sub esp, 0xc
mov edx, 0x447bac
mov edx, esp
call fcn.00407160
call fcn.00407170
mov dword [edx], edi
mov dword [edx + 8], 0x40
call ecx
push edx
mov edx, 0x34d17966
xor edx, 0x34d17966
cmp eax, edx
pop edx
je 0x406d9c
mov al, 1
mov ecx, 0
mov edx, dword [0x80a094]
mov edi, dword [0x80a090]
mov ebx, esi
mov ebx, edx
sub ebx, 0xda61cc10
sub ebx, 0x39002aad
add ebx, 0xda61cc10
sub ebx, 0x11b35728
add ebx, 0xffffffff
add ebx, 0x11b35728
add ecx, 0xc6ffd553
sub ebx, ecx
imul edx, ebx
and edx, 1
cmp edx, 0
sete ah
cmp edi, 0xa
setl cl
mov ch, ah
xor ch, 1
and ch, 1
mov dl, al
xor dl, 1
mov dh, ah
and dh, dl
mov bl, al
xor bl, 1
and bl, 1
and dl, 1
or ch, dh
or bl, dl
xor ch, bl
mov dl, cl
xor dl, 1
and dl, 1
mov dh, al
xor dh, 1
mov bl, cl
and bl, dh
or dl, bl
mov dh, al
xor dh, 1
and dh, 1
mov bl, al
xor bl, 1
and bl, 1
or dh, bl
mov bl, al
xor bl, 1
mov bh, ch
xor bh, bl
and bh, ch
mov bl, dh
xor bl, 1
mov byte [esi + 0x33], al
mov al, ah
xor al, bl
and al, ah
mov ah, byte [esi + 0x33]
xor ah, 1
mov bl, dl
xor bl, ah
and bl, dl
xor cl, 1
mov ah, dh
xor ah, 1
mov byte [esi + 0x32], al
mov al, byte [esi + 0x33]
xor al, 1
or cl, ah
or al, 1
xor cl, 1
and cl, al
mov al, bh
xor al, 1
mov ah, byte [esi + 0x32]
xor ah, 1
mov byte [esi + 0x31], al
mov al, byte [esi + 0x33]
xor al, 1
mov byte [esi + 0x30], al
mov al, byte [esi + 0x31]
and al, 1
mov byte [esi + 0x2f], al
mov al, byte [esi + 0x30]
and bh, al
mov al, ah
and al, 1
mov byte [esi + 0x2e], al
mov al, byte [esi + 0x32]
mov byte [esi + 0x2d], cl
mov cl, byte [esi + 0x30]
and al, cl
mov cl, byte [esi + 0x2f]
or cl, bh
mov bh, byte [esi + 0x2e]
or bh, al
xor cl, bh
mov al, byte [esi + 0x31]
or al, ah
xor al, 1
mov ah, byte [esi + 0x30]
or ah, 1
and al, ah
or cl, al
mov al, bl
xor al, 1
mov ah, byte [esi + 0x2d]
xor ah, 1
mov bh, byte [esi + 0x33]
xor bh, 0
mov byte [esi + 0x2c], al
and al, 0
and bl, bh
mov byte [esi + 0x2b], al
mov al, ah
and al, 0
mov byte [esi + 0x2a], al
mov al, byte [esi + 0x2d]
and al, bh
mov byte [esi + 0x29], al
mov al, byte [esi + 0x2b]
or al, bl
mov bl, byte [esi + 0x2a]
mov byte [esi + 0x28], al
mov al, byte [esi + 0x29]
or bl, al
mov al, byte [esi + 0x28]
xor al, bl
mov bl, byte [esi + 0x2c]
or bl, ah
xor bl, 1
or bh, 0
and bl, bh
or al, bl
mov ah, cl
xor ah, 1
and ah, 1
mov bl, byte [esi + 0x33]
xor bl, 1
and cl, bl
mov bh, al
xor bh, 1
and bh, 1
and al, bl
or ah, cl
or bh, al
xor ah, bh
mov al, ch
and al, dl
xor ch, dl
or al, ch
mov cl, al
xor cl, 1
and cl, 1
mov dl, byte [esi + 0x33]
xor dl, 1
and al, dl
mov ch, byte [esi + 0x33]
xor ch, 1
and ch, 1
and dl, 1
or cl, al
or ch, dl
xor cl, ch
mov al, byte [esi + 0x33]
xor al, 1
mov dl, dh
xor dl, 1
mov ch, byte [esi + 0x33]
xor ch, 0
mov bl, al
and bl, 0
mov bh, ch
and bh, 1
mov byte [esi + 0x27], al
mov al, dl
and al, 0
and dh, ch
or bl, bh
or al, dh
xor bl, al
mov al, byte [esi + 0x27]
or al, dl
xor al, 1
or ch, 0
and al, ch
or bl, al
xor bl, 1
mov al, cl
xor al, bl
and al, cl
mov cl, ah
xor cl, 1
mov dl, al
xor dl, 1
mov ch, byte [esi + 0x33]
xor ch, 0
mov dh, cl
and dh, 0
and ah, ch
mov bl, dl
and bl, 0
and al, ch
or dh, ah
or bl, al
xor dh, bl
or cl, dl
xor cl, 1
or ch, 0
and cl, ch
or dh, cl
test dh, 1
jne 0x406c78
jmp 0x406e8a
sub esp, 4
mov eax, esp
call fcn.00407180
call fcn.00407190
mov ecx, 0x80857c
call fcn.004237a0
sub esp, 4
mov ecx, esp
call fcn.004071a0
call fcn.004071b0
call fcn.004071c0
call fcn.004071d0
call fcn.004772c0
mov bl, 1
mov ecx, 0x121b401f
mov edx, dword [0x80a094]
mov edi, dword [0x80a090]
add ecx, 0
sub ecx, 1
sub ecx, 0x121b401f
call fcn.004071e0
mov eax, edx
sub eax, 0x31478862
add eax, ecx
add eax, 0x31478862
imul edx, eax
and edx, 1
cmp edx, 0
sete bh
cmp edi, 0xa
setl al
mov ah, al
xor ah, 1
mov cl, bh
xor cl, ah
and cl, bh
mov ah, bh
xor ah, 1
and ah, 0
xor bl, 0
and bh, bl
mov ch, al
xor ch, 1
and ch, 0
and al, bl
or ah, bh
or ch, al
xor ah, ch
mov al, cl
and al, ah
xor cl, ah
or al, cl
test al, 1
jne 0x406d3f
jmp 0x406e8a
sub esp, 8
mov eax, dword [esi + 0x70]
mov dword [esp], eax
call fcn.004071f0
mov dword [esp + 4], ecx
call fcn.00423990
add esp, 8
sub esp, 4
mov ecx, 0x447ca8
mov eax, esp
mov ecx, dword [esi + 0x70]
mov dword [eax], ecx
mov ecx, dword [esi + 0x20]
call fcn.004ff990
sub esp, 4
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esi + 0xcc]
call fcn.00410ad0
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x70]
call fcn.00506f10
call fcn.00407200
call fcn.004101e0
jmp 0x406da6
jmp 0x406da1
call fcn.004493e1
mov eax, dword [esi + 0xb4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 4
call fcn.00407210
call fcn.004487b0
mov eax, esp
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x10], eax
mov eax, ecx
call fcn.004487b0
mov eax, esp
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xac]
mov dword [ecx], edx
mov edi, dword [esi + 0xa8]
mov dword [eax], edi
jmp 0x405fe9
mov eax, dword [0x7f9b00]
sub esp, 8
mov ecx, 0x447b10
mov ecx, esp
mov dword [ecx], eax
call fcn.00407220
call fcn.00407230
call eax
mov dword [str.Lwa_], eax
mov eax, dword [0x7f9b00]
sub esp, 8
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], 0x7fa178
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
call fcn.00407240
mov eax, dword [0x7f9b00]
sub esp, 8
mov ecx, esp
call fcn.00407250
mov dword [ecx + 4], str._rF_M
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
mov dword [0x7f9b0c], eax
mov eax, dword [str.Lwa_]
sub esp, 4
mov ecx, esp
call fcn.00407260
call eax
call fcn.00407270
jmp 0x4063d8
call fcn.00407280
sub esp, 4
mov edx, 0x20000
mov ecx, esp
mov edx, dword [esi + 0x7c]
mov dword [ecx], edx
call eax
call fcn.00407290
jmp 0x4067db
sub esp, 4
mov eax, esi
mov eax, esp
call fcn.004072a0
mov dword [eax], ecx
mov ecx, 0x80857c
call fcn.004237a0
sub esp, 4
mov ecx, esp
mov edx, dword [esi + 0x78]
call fcn.004072b0
mov ecx, dword [esi + 0x6c]
mov dword [esi + 4], eax
call fcn.004772c0
call fcn.004072c0
jmp 0x406c78