Function at 0x405240
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
cmp dword [0x4787c0], 0
jne 0x405ef3
mov al, byte [0x474121]
mov cl, al
xor cl, 0xff
mov dl, al
xor dl, 0xff
and cl, dl
mov dl, cl
and dl, 0x7a
mov ah, cl
xor ah, 0x85
add cl, ah
sub cl, dl
and cl, cl
xor cl, 0xff
and cl, 0xff
xor cl, 0xff
and cl, 0xff
xor cl, 0xff
xor al, 0xff
mov dl, al
add dl, 1
xor al, 0xff
or al, 0x85
add al, dl
xor cl, 0xff
xor al, 0xff
and cl, al
mov byte [0x47412d], cl
mov al, byte [0x474122]
xor al, 0xab
mov byte [0x47412e], al
mov al, byte [0x474123]
mov cl, al
xor cl, 0xff
and cl, 0x64
and al, 0x9b
or cl, al
xor cl, 0xf2
mov byte [0x47412f], cl
mov al, byte [0x474124]
xor al, 0xce
mov byte [0x474130], al
mov al, byte [0x474125]
xor al, 0x10
mov byte [0x474131], al
mov al, byte [0x474126]
mov cl, al
xor cl, 0xff
and cl, 0xec
and al, 0x13
or cl, al
mov al, cl
xor al, 0xff
and al, 0xaa
and cl, 0x55
or al, cl
xor al, 0x1b
mov byte [0x474132], al
mov al, byte [0x474127]
mov cl, al
xor cl, 0xff
mov dl, al
xor dl, 0xff
or cl, dl
xor cl, 0xff
or cl, 0x78
and al, 0x78
xor al, 0xff
xor cl, 0xff
xor al, 0xff
or cl, al
mov byte [0x474133], cl
mov al, byte [0x474128]
xor al, 0x40
mov byte [0x474134], al
mov al, byte [0x474129]
mov dl, al
xor dl, 0xd2
mov cl, dl
xor cl, 0xff
and cl, 0xd4
and dl, 0x2b
or cl, dl
xor cl, 0x2b
and cl, 0xd2
shl cl, 1
sub cl, 0xd2
sub al, cl
mov byte [str.AT_I], al
mov al, byte [0x47412a]
mov cl, al
and cl, cl
xor cl, 0xff
and cl, 0xc8
xor cl, 0xff
and al, 0x37
xor al, 0xff
xor cl, 0xff
xor al, 0xff
or cl, al
mov byte [0x474136], cl
mov ch, byte [0x47412b]
mov cl, ch
xor cl, 0x51
and cl, ch
mov dl, cl
and dl, 0xfd
mov al, cl
xor al, 0xff
and al, 2
mul dl
mov dl, al
mov dh, cl
and dh, 2
or cl, 2
mov al, cl
mul dh
add al, dl
mov cl, ch
and cl, 0xae
shl cl, 1
xor ch, 0xae
add ch, cl
xor edx, edx
sub dl, al
add ch, dl
mov byte [0x474137], ch
mov al, byte [0x47412c]
xor al, 0x94
mov byte [0x474138], al
mov cl, byte [0x4740d7]
mov dl, cl
and dl, 0xff
shl dl, 1
mov al, cl
add al, 0xff
sub al, dl
mov dl, cl
xor dl, 0xff
and dl, 0xff
or dl, 0
and al, dl
or al, 0xdb
xor al, 0xff
xor cl, 0xff
mov dl, cl
xor dl, 0x24
and dl, cl
xor al, 0xff
mov cl, dl
xor cl, 0xff
xor cl, 0xff
and cl, 0xff
shl cl, 1
sub cl, 0xff
sub dl, cl
and al, dl
mov byte [0x4740e3], al
mov al, byte [0x4740d8]
mov cl, al
xor cl, 0xff
and cl, 0xf6
and al, 9
or cl, al
mov byte [0x4740e4], cl
mov al, byte [0x4740d9]
xor al, 0xa7
mov byte [0x4740e5], al
mov cl, byte [0x4740da]
mov al, cl
and al, al
xor al, 0xff
xor al, 0xff
or al, 0
xor al, 0xff
or al, 0
and al, 0x37
mov dl, cl
xor dl, 0x37
and dl, cl
or al, dl
mov cl, al
and cl, 0xc4
shl cl, 1
add al, 0xc4
sub al, cl
mov byte [0x4740e6], al
mov al, byte [0x4740db]
xor al, 0xb2
mov byte [0x4740e7], al
mov al, byte [0x4740dc]
mov dl, al
xor dl, 0xff
mov cl, al
xor cl, 0xff
and dl, cl
or dl, dl
xor dl, 0xff
xor dl, 0xff
and dl, 0xff
xor dl, 0xff
and dl, 0xff
mov cl, dl
xor cl, 0xff
or cl, 0x89
and dl, 0x76
xor dl, 0xff
and cl, dl
xor cl, 0xff
mov dl, al
xor dl, 0xff
and dl, 0x96
and al, 0x69
or dl, al
xor dl, 0x69
or dl, dl
xor dl, 0xff
xor dl, 0xff
and dl, 0x89
or cl, dl
xor cl, 0xff
mov byte [0x4740e8], cl
mov al, byte [0x4740dd]
xor al, 0xaf
mov byte [0x4740e9], al
mov al, byte [0x4740de]
xor al, 0xb
mov byte [str.:_x], al
mov al, byte [0x4740df]
xor al, 0x1f
mov byte [0x4740eb], al
mov al, byte [0x4740e0]
xor al, 0x63
mov byte [0x4740ec], al
mov cl, byte [0x4740e1]
mov al, cl
or al, al
xor al, 0xff
mov dl, cl
or dl, dl
xor dl, 0xff
xor al, 0xff
xor dl, 0xff
and al, dl
xor al, 0xff
or al, 0xe9
and al, al
xor al, 0xff
and al, 0xff
xor al, 0xff
and al, 0xff
xor al, 0xff
xor cl, 0xff
and cl, 0xe9
xor al, 0xff
mov dl, cl
xor dl, 0xff
xor cl, 0xff
or dl, cl
xor dl, 0xff
or dl, 0
and dl, 0xff
xor dl, 0xff
and al, dl
mov byte [0x4740ed], al
mov al, byte [0x4740e2]
mov cl, al
xor cl, 4
xor cl, 0xff
and cl, 0xff
or cl, 0
xor cl, 0xff
or cl, 0xfb
xor cl, 0xff
and cl, 0xff
shl cl, 1
sub cl, 4
xor cl, 0xff
add al, cl
add al, 1
mov byte [0x4740ee], al
mov al, byte [0x4740b9]
mov cl, al
or cl, cl
xor cl, 0xff
or cl, 0xc1
xor cl, 0xff
xor al, 0xff
and al, 0xc1
or cl, al
xor cl, 0xff
mov byte [0x4740c8], cl
mov al, byte [0x4740ba]
mov cl, al
or cl, cl
xor cl, 0xff
xor cl, 0xff
and cl, 0x26
xor al, 0xff
and al, 0xd9
or cl, al
xor cl, 0xff
mov byte [0x4740c9], cl
mov al, byte [0x4740bb]
xor al, 0x46
mov byte [0x4740ca], al
mov al, byte [0x4740bc]
xor al, 0x9f
mov byte [0x4740cb], al
mov al, byte [0x4740bd]
mov cl, al
and cl, cl
xor cl, 0xff
and cl, 0x50
xor cl, 0xff
xor al, 0xff
or al, 0x50
xor cl, 0xff
xor al, 0xff
or cl, al
mov byte [0x4740cc], cl
mov al, byte [0x4740be]
xor al, 0x50
mov byte [0x4740cd], al
mov al, byte [0x4740bf]
mov cl, al
xor cl, 0xff
and cl, 0x8d
and al, 0x72
or cl, al
mov byte [0x4740ce], cl
mov al, byte [0x4740c0]
mov cl, al
and cl, 0x10
shl cl, 1
add al, 0x10
sub al, cl
mov byte [0x4740cf], al
mov al, byte [0x4740c1]
mov cl, al
xor cl, 0xff
and cl, 0x6e
and al, 0x91
or cl, al
mov byte [0x4740d0], cl
mov al, byte [0x4740c2]
mov cl, al
and cl, 0x14
shl cl, 1
add al, 0x14
sub al, cl
mov byte [0x4740d1], al
mov al, byte [0x4740c3]
mov dl, al
and dl, dl
mov cl, dl
xor cl, 0xff
xor cl, 0xff
and cl, 0xff
shl cl, 1
sub cl, 0xff
sub dl, cl
mov cl, dl
xor cl, 0xff
or cl, 0x18
and dl, 0xe7
xor dl, 0xff
and cl, dl
xor cl, 0xff
xor cl, 0xff
and al, 0x18
xor al, 0xff
and cl, cl
xor cl, 0xff
and cl, 0xff
xor cl, 0xff
and cl, 0xff
xor cl, 0xff
xor al, 0xff
mov dl, cl
and dl, al
xor cl, al
or dl, cl
mov byte [0x4740d2], dl
mov al, byte [0x4740c4]
mov cl, al
or cl, cl
xor cl, 0xff
xor cl, 0xff
and cl, 0x89
xor al, 0xff
and al, 0x76
or cl, al
xor cl, 0xff
mov byte [0x4740d3], cl
mov al, byte [0x4740c5]
mov cl, al
and cl, cl
xor cl, 0xff
and cl, 0x62
xor cl, 0xff
xor al, 0xff
or al, 0x62
xor cl, 0xff
xor al, 0xff
or cl, al
mov byte [0x4740d4], cl
mov al, byte [0x4740c6]
mov cl, al
and cl, 0x6f
shl cl, 1
add al, 0x6f
sub al, cl
mov byte [0x4740d5], al
mov al, byte [0x4740c7]
mov cl, al
xor cl, 0xff
and cl, 0x85
and al, 0x7a
or cl, al
mov byte [0x4740d6], cl
mov al, byte [0x474139]
mov cl, al
xor cl, 0xff
mov dl, al
xor dl, 0xff
and cl, dl
xor cl, 0xff
and cl, 0x8c
shl cl, 1
add al, 0x8c
sub al, cl
mov byte [0x474149], al
mov al, byte [0x47413a]
xor al, 0xea
mov byte [0x47414a], al
mov al, byte [0x47413b]
mov cl, al
and cl, cl
xor cl, 0xff
and cl, 0x26
xor cl, 0xff
xor al, 0xff
or al, 0x26
and cl, al
xor cl, 0xff
mov byte [0x47414b], cl
mov al, byte [0x47413c]
xor al, 0x94
mov byte [0x47414c], al
mov al, byte [0x47413d]
xor al, 0x7a
mov byte [0x47414d], al
mov cl, byte [0x47413e]
mov al, cl
and al, al
xor al, 0xff
and al, 0xaf
xor al, 0xff
xor cl, 0xff
mov dl, cl
and dl, 0x50
mov ah, cl
xor ah, 0xaf
add cl, ah
sub cl, dl
and al, cl
xor al, 0xff
mov byte [0x47414e], al
mov al, byte [0x47413f]
xor al, 0x4d
mov byte [0x47414f], al
mov al, byte [0x474140]
mov cl, al
xor cl, 0xc8
and cl, cl
xor cl, 0xff
and cl, 0xff
xor cl, 0xff
and cl, 0xff
xor cl, 0xff
xor cl, 0xff
or cl, 0x37
xor cl, 0xff
and cl, 0xff
shl cl, 1
mov dl, cl
xor dl, 0xc8
and cl, 0x37
shl cl, 1
sub cl, dl
sub al, cl
mov byte [0x474150], al
mov al, byte [0x474141]
mov cl, al
xor cl, 0x4e
xor cl, 0xff
and cl, 0x4e
shl cl, 1
sub cl, 0x4e
sub al, cl
mov byte [0x474151], al
mov al, byte [0x474142]
mov dl, al
xor dl, 0xff
mov cl, al
xor cl, 0xff
and dl, cl
mov cl, dl
xor cl, 0xff
and cl, 0x6f
xor dl, 0xff
and dl, 0x6f
xor cl, 0xff
xor dl, 0xff
and cl, dl
mov dl, cl
xor dl, 0xff
and dl, 0xa2
and cl, 0x5d
or dl, cl
xor dl, 0x5d
or al, 0x6f
xor al, 0xff
or dl, al
xor dl, 0xff
mov byte [0x474152], dl
mov cl, byte [0x474143]
mov al, cl
xor al, 0xff
xor al, 0xff
or al, 0x89
xor al, 0xff
and al, 0xff
mov dl, cl
add dl, 1
xor cl, 0xff
or cl, 0x89
add cl, dl
and al, al
xor al, 0xff
and cl, cl
xor cl, 0xff
xor al, 0xff
xor cl, 0xff
or al, cl
xor al, 0xf6
mov byte [0x474153], al
mov ch, byte [str.Qz3_r_rW]
mov cl, ch
xor cl, 0x23
xor cl, 0xff
and cl, 0xff
or cl, 0
or cl, cl
xor cl, 0xff
xor cl, 0xff
and cl, 0x23
mov al, cl
xor al, 0xff
mov dl, al
and dl, 2
or al, 2
xor al, 0xff
mul dl
mov dl, al
mov dh, cl
and dh, 2
or cl, 2
mov al, cl
mul dh
add al, dl
sub al, 0x23
sub ch, al
mov byte [0x474154], ch
mov al, byte [0x474145]
mov cl, al
xor cl, 9
xor cl, 0xff
and cl, 9
shl cl, 1
sub cl, 9
sub al, cl
mov byte [0x474155], al
mov cl, byte [0x474146]
mov dl, cl
add dl, 1
mov al, cl
xor al, 0xff
or al, cl
add al, dl
xor al, 0xff
mov dl, al
and dl, 0xff
shl dl, 1
add al, 0xff
sub al, dl
or al, 0xb8
and cl, 0xb8
xor cl, 0xff
and al, cl
mov cl, al
xor cl, 0xff
and cl, 0xa8
and al, 0x57
or cl, al
xor cl, 0x57
mov byte [0x474156], cl
mov al, byte [0x474147]
mov cl, al
xor cl, 0xff
and cl, 0xd0
and al, 0x2f
or cl, al
xor cl, 0x8a
mov byte [0x474157], cl
mov al, byte [0x474148]
xor al, 0xd
mov byte [0x474158], al
mov al, byte [0x4740f0]
mov cl, al
xor cl, 0xff
and cl, 0x3e
xor al, 0xff
or al, 0x3e
xor al, 0xff
and al, 0xff
or cl, al
mov byte [0x474110], cl
mov al, byte [0x4740f1]
mov cl, al
xor cl, 0xff
mov dl, al
xor dl, 0xff
and dl, 0xff
or dl, 0
and cl, dl
mov dl, cl
and dl, 0xff
shl dl, 1
add cl, 0xff
sub cl, dl
mov dl, cl
xor dl, 0x4a
xor dl, 0xff
or cl, 0x4a
and cl, dl
mov dl, al
and dl, 0xff
shl dl, 1
add al, 0xff
sub al, dl
and al, 0xb5
xor cl, 0xff
xor al, 0xff
and cl, al
mov byte [0x474111], cl
mov al, byte [0x4740f2]
xor al, 0xb4
mov byte [0x474112], al
mov al, byte [0x4740f3]
mov cl, al
xor cl, 0xff
mov dl, al
and dl, cl
mov ah, al
xor ah, ah
mov cl, al
add cl, ah
sub cl, dl
xor cl, 0xff
or cl, 0xc1
and cl, cl
xor cl, 0xff
xor cl, 0xff
or cl, 0
and cl, 0xff
xor cl, 0xff
or al, 0x3e
xor al, 0xff
xor cl, 0xff
xor al, 0xff
mov dl, cl
xor dl, al
xor dl, 0xff
or cl, al
and cl, dl
mov byte [0x474113], cl
mov al, byte [0x4740f4]
mov cl, al
and cl, cl
xor cl, 0xff
xor cl, 0xff
or cl, 0
and cl, 0xff
xor cl, 0xff
or cl, cl
xor cl, 0xff
or cl, 0xaa
xor cl, 0xff
and al, 0xaa
or cl, al
mov byte [0x474114], cl
mov al, byte [0x4740f5]
mov cl, al
xor cl, 0xff
and cl, 0x96
and al, 0x69
or cl, al
mov byte [0x474115], cl
mov al, byte [0x4740f6]
xor al, 0x45
mov byte [0x474116], al
mov al, byte [0x4740f7]
xor al, 0xad
mov byte [0x474117], al
mov al, byte [0x4740f8]
xor al, 0xb7
mov byte [0x474118], al
mov al, byte [0x4740f9]
mov cl, al
xor cl, 0xff
and cl, 0x4d
and al, 0xb2
or cl, al
mov byte [0x474119], cl
mov al, byte [0x4740fa]
mov cl, al
xor cl, 0xff
and cl, 0xdf
and al, 0x20
mov dl, cl
and dl, al
xor cl, al
or dl, cl
mov byte [0x47411a], dl
mov al, byte [0x4740fb]
mov cl, al
xor cl, 0xff
and cl, 0x85
and al, 0x7a
or cl, al
xor cl, 0x50
mov byte [0x47411b], cl
mov al, byte [0x4740fc]
mov cl, al
and cl, 0x52
shl cl, 1
add al, 0x52
sub al, cl
mov byte [0x47411c], al
mov al, byte [0x4740fd]
mov cl, al
xor cl, 0x7c
xor cl, 0xff
and cl, 0x7c
shl cl, 1
sub cl, 0x7c
sub al, cl
mov byte [0x47411d], al
mov al, byte [0x4740fe]
mov dl, al
xor dl, 0x2e
mov cl, dl
xor cl, 0xff
and cl, 0xe4
and dl, 0x1b
or cl, dl
xor cl, 0x1b
xor cl, 0xff
xor cl, 0x2e
and cl, 0x2e
shl cl, 1
sub cl, 0x2e
sub al, cl
mov byte [0x47411e], al
mov al, byte [0x4740ff]
mov cl, al
xor cl, 0xff
and cl, 0xec
mov dl, al
and dl, 0x13
or cl, dl
xor cl, 0x14
xor cl, 0xff
and cl, 0xf8
shl cl, 1
sub cl, 0xf8
add al, 0x90
sub al, cl
sub al, 0x90
mov byte [0x47411f], al
mov ch, byte [0x474100]
mov cl, ch
xor cl, 0xff
and cl, 0x58
mov al, ch
and al, 0xa7
or cl, al
xor cl, 0xb
xor cl, 0xff
and cl, 0x53
mov al, cl
xor al, 0xff
mov dl, al
and dl, 2
or al, 2
xor al, 0xff
mul dl
mov dl, al
mov dh, cl
and dh, 2
or cl, 2
mov al, cl
mul dh
add al, dl
sub al, 0x53
sub ch, al
mov byte [0x474120], ch
mov al, byte [0x474080]
xor al, 0x26
mov byte [0x4740a0], al
mov al, byte [0x474081]
xor al, 0xde
mov byte [0x4740a1], al
mov al, byte [0x474082]
xor al, 0x3e
mov byte [0x4740a2], al
mov al, byte [0x474083]
mov cl, al
xor cl, 0xff
mov dl, cl
xor dl, 0x74
xor dl, 0xff
or cl, 0x74
and cl, dl
and al, 0x8b
or cl, al
xor cl, 0xe5
mov byte [0x4740a3], cl
mov al, byte [0x474084]
xor al, 0x12
mov byte [0x4740a4], al
mov al, byte [0x474085]
xor al, 0xab
mov byte [0x4740a5], al
mov al, byte [0x474086]
mov cl, al
xor cl, 0xff
and cl, 0xfa
and al, 5
mov dl, cl
and dl, al
xor cl, al
or dl, cl
mov byte [0x4740a6], dl
mov al, byte [0x474087]
xor al, 0xd0
mov byte [0x4740a7], al
mov ch, byte [0x474088]
mov cl, ch
and cl, 0x6c
mov dl, cl
and dl, 0xfd
mov al, cl
xor al, 0xff
and al, 2
mul dl
mov dl, al
mov dh, cl
and dh, 2
or cl, 2
mov al, cl
mul dh
add al, dl
mov cl, ch
and cl, 0x6c
shl cl, 1
xor ch, 0x6c
add ch, cl
sub ch, al
mov byte [0x4740a8], ch
mov al, byte [0x474089]
mov cl, al
or cl, cl
xor cl, 0xff
or cl, 0xd7
xor cl, 0xff
xor al, 0xff
and al, 0xd7
xor cl, 0xff
xor al, 0xff
and cl, al
mov byte [0x4740a9], cl
mov al, byte [0x47408a]
xor al, 0x3b
mov byte [0x4740aa], al
mov cl, byte [0x47408b]
mov dl, cl
and dl, 0xff
shl dl, 1
mov al, cl
add al, 0xff
sub al, dl
and al, 0xda
mov dl, cl
xor dl, 0xff
xor cl, 0xff
and dl, cl
or dl, 0xda
xor dl, 0xff
or al, dl
mov byte [0x4740ab], al
mov cl, byte [0x47408c]
mov al, cl
xor al, 0xff
mov dl, cl
xor dl, 0xff
or al, dl
and al, 0x2e
xor al, 0xff
xor cl, 0xff
or cl, 0x2e
and al, cl
xor al, 0xff
mov byte [0x4740ac], al
mov al, byte [0x47408d]
xor al, 0x51
mov byte [0x4740ad], al
mov cl, byte [0x47408e]
mov dl, cl
xor dl, 0xff
mov al, dl
xor al, 0xff
or al, 0x7b
and dl, 0x84
xor dl, 0xff
and al, dl
xor al, 0xff
mov dl, cl
xor dl, 0x7b
xor dl, 0xff
or cl, 0x7b
and cl, dl
mov dl, cl
xor dl, 0xff
mov ah, al
and ah, dl
mov dl, al
xor dl, cl
add al, dl
sub al, ah
mov cl, al
or cl, cl
xor cl, 0xff
or cl, 0x7d
xor cl, 0xff
or al, 0x82
xor al, 0xff
xor cl, 0xff
xor al, 0xff
and cl, al
mov byte [0x4740ae], cl
mov cl, byte [0x47408f]
mov dl, cl
or dl, dl
xor dl, 0xff
xor dl, 0xff
mov al, dl
xor al, 0xff
or al, 0x3f
xor dl, 0xff
or dl, 0x3f
xor al, 0xff
xor dl, 0xff
or al, dl
xor cl, 0xff
mov dl, cl
xor dl, 0xc0
and dl, cl
mov cl, al
or cl, dl
xor cl, 0xff
or al, dl
xor al, 0xff
xor cl, 0xff
xor al, 0xff
and cl, al
xor cl, 0xff
mov byte [0x4740af], cl
mov al, byte [0x474090]
xor al, 0x3b
mov byte [0x4740b0], al
mov al, byte [0x474091]
mov dl, al
xor dl, 0xff
mov cl, dl
and cl, 0x6a
xor cl, 0xff
and dl, 0x6a
xor dl, 0xff
and cl, dl
xor cl, 0xff
mov dl, al
xor dl, 0x95
xor dl, 0xff
or al, 0x95
and al, dl
mov dl, cl
xor dl, 0xff
xor cl, 0xff
or dl, cl
and al, al
xor al, 0xff
xor dl, 0xff
xor al, 0xff
or dl, al
xor dl, 0x7b
mov byte [0x4740b1], dl
mov al, byte [str._Zk]
mov cl, al
xor cl, 0x4b
xor cl, 0xff
or cl, cl
xor cl, 0xff
xor cl, 0xff
and cl, 0x4b
shl cl, 1
mov dl, cl
xor dl, 0xff
and dl, 0x4b
and cl, 0xb4
sub cl, dl
sub al, cl
mov byte [0x4740b2], al
mov al, byte [0x474093]
xor al, 0x4f
mov byte [str._axUX_rHnT_], al
mov cl, byte [0x474094]
mov al, cl
xor al, 0xff
xor al, 0xff
or al, 0xd6
xor al, 0xff
and al, 0xff
and cl, 0xd6
mov dl, cl
and dl, al
xor dl, 0xff
add al, cl
add al, 1
add al, dl
mov byte [0x4740b4], al
mov ch, byte [0x474095]
mov cl, ch
xor cl, 0xff
or cl, 0xfc
xor cl, 0xff
and cl, 0xff
mov dl, cl
and dl, 0xfd
mov al, cl
xor al, 0xff
and al, 2
mul dl
mov dl, al
mov dh, cl
and dh, 2
or cl, 2
mov al, cl
mul dh
add al, dl
add ch, 3
sub ch, al
mov byte [0x4740b5], ch
mov al, byte [0x474096]
mov cl, al
and cl, 0x7e
shl cl, 1
add al, 0x7e
sub al, cl
mov byte [0x4740b6], al
mov al, byte [0x474097]
mov cl, al
or cl, cl
xor cl, 0xff
or cl, 0xae
xor cl, 0xff
or al, 0x51
xor al, 0xff
xor cl, 0xff
xor al, 0xff
and cl, al
mov byte [0x4740b7], cl
mov al, byte [0x474098]
mov cl, al
xor cl, 0x11
xor cl, 0xff
and cl, 0x11
shl cl, 1
sub cl, 0x11
sub al, cl
mov byte [0x4740b8], al
mov dword [0x4787c0], 1
push eax
mov edi, esp
sub esp, 0x1c
mov ebx, esp
push eax
mov dword [ebp - 0x1c], esp
sub esp, 0x10
mov dword [ebp - 0x30], esp
push eax
mov dword [ebp - 0x18], esp
sub esp, 0x10
mov esi, esp
push eax
mov dword [ebp - 0x24], esp
sub esp, 0xc
mov dword [ebp - 0x34], esp
push eax
mov dword [ebp - 0x28], esp
sub esp, 0x14
mov dword [ebp - 0x38], esp
push eax
mov dword [ebp - 0x2c], esp
sub esp, 0xc
mov dword [ebp - 0x3c], esp
push eax
mov dword [ebp - 0x14], esp
push eax
mov dword [ebp - 0x48], esp
sub esp, 0x22c
mov dword [ebp - 0x40], esp
push eax
mov dword [ebp - 0x44], esp
push eax
mov dword [ebp - 0x20], esp
push eax
mov dword [ebp - 0x10], esp
lea eax, str.kernel32.dll
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [edi], eax
lea eax, [0x4740a0]
sub esp, 0xc
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x19
call fcn.004521d0
add esp, 0xc
mov eax, dword [edi]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], eax
mov eax, dword [0x474149]
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov eax, dword [0x47414d]
mov dword [ecx + 4], eax
mov eax, dword [0x474151]
mov dword [ecx + 8], eax
mov eax, dword [0x474155]
mov dword [ecx + 0xc], eax
mov eax, dword [edi]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [0x4740c8]
mov dword [esi], eax
mov eax, dword [0x4740cc]
mov dword [esi + 4], eax
mov eax, dword [0x4740d0]
mov dword [esi + 8], eax
mov ax, word [0x4740d4]
mov word [esi + 0xc], ax
mov al, byte [0x4740d6]
mov byte [esi + 0xe], al
mov eax, dword [edi]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov eax, dword [0x4740e3]
mov ecx, dword [ebp - 0x34]
mov dword [ecx], eax
mov eax, dword [0x4740e7]
mov dword [ecx + 4], eax
mov eax, dword [0x4740eb]
mov dword [ecx + 8], eax
mov eax, dword [edi]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
lea eax, [0x474110]
sub esp, 0xc
mov esi, dword [ebp - 0x38]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], 0x11
call fcn.004521d0
add esp, 0xc
mov eax, dword [edi]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [0x47412d]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx], eax
mov eax, dword [0x474131]
mov dword [ecx + 4], eax
mov eax, dword [str.AT_I]
mov dword [ecx + 8], eax
mov eax, dword [edi]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x14]
mov dword [ecx], eax
xor eax, eax
sub esp, 8
mov dword [esp], 0xf
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1c]
call dword [eax]
mov ecx, dword [ebp - 0x48]
mov dword [ecx], eax
mov edx, dword [ebp - 0x40]
mov dword [edx], 0x22c
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov edi, ecx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov esi, edx
mov dword [esp + 4], edx
call eax
mov ecx, dword [ebp - 0x44]
mov ebx, ecx
mov dword [ecx], eax
jmp 0x4060fa
cmp dword [ebx], 0
setne al
test al, 1
jne 0x406109
jmp 0x4061d8
mov eax, dword [ebp - 0x20]
mov dword [eax], 0
cmp dword [eax], 1
jl 0x40611c
jmp 0x4061be
jmp 0x40611e
mov eax, dword [eax]
mov eax, dword [eax*4 + 0x4787bc]
mov ecx, esi
add ecx, 0x24
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0045b6e6
add esp, 8
cmp eax, 0
sete al
test al, 1
jne 0x40614a
jmp 0x4061ab
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [esi + 8]
xor edx, edx
sub esp, 0xc
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
call eax
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
cmp dword [ecx], 0
setne al
test al, 1
jne 0x40617d
jmp 0x4061ab
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
xor edx, edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], 0
call eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], ecx
call eax
jmp 0x4061ad
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
add eax, 1
mov dword [ecx], eax
mov eax, ecx
jmp 0x406112
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov ecx, dword [edi]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], esi
call eax
mov dword [ebx], eax
jmp 0x4060f8
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov ecx, dword [edi]
sub esp, 4
mov dword [esp], ecx
call eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret