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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov eax, dword [0x44d834]
mov edx, dword [esp + 0x74]
mov esi, 0xda316b2c
mov edi, 0x5973397f
xor eax, esp
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x58], ecx
mov ecx, 0x2ad9d606
cmp dword [edx + 0x14], 0xf
cmova esi, ecx
nop dword [eax + eax]
cmp edi, 0xda316b2c
je 0x40408b
cmp edi, 0x2ad9d606
je 0x404078
cmp edi, 0x5973397f
jne 0x404050
mov ecx, dword [esp + 0x58]
mov edi, esi
cmp edi, 0xda316b2c
jne 0x404058
jmp 0x40408b
mov ecx, dword [esp + 0x50]
mov edi, 0xda316b2c
mov ecx, dword [ecx]
cmp edi, 0xda316b2c
jne 0x404058
mov esi, eax
mov ebp, eax
mov edx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 4], 0
not esi
xor ebp, 0x4b5f93b5
mov edi, esi
and ebp, eax
and edi, 0x4b5f93b5
mov ebx, edi
mov ecx, edx
and ebx, ebp
xor ebp, edi
not ecx
or ebp, ebx
mov ebx, ecx
mov edi, ebp
and ebp, 0x4b5f93b5
and ebx, edx
and edx, 0xb0bccfa6
not edi
and edi, 0xb4a06c4a
or ebp, edi
mov edi, ecx
and edi, 0x4f433059
or edx, edi
mov edi, ebp
and ebp, 0x4f433059
not edi
and edi, 0xb0bccfa6
or edi, ebp
mov ebp, ecx
and ebp, ebx
xor ebx, ecx
xor edi, edx
mov edx, esi
or ebx, ebp
mov ebp, eax
and edx, 0xfdafdad4
not edi
shr eax, 2
and ebp, 0x250252b
or edi, ecx
mov ecx, dword [esp]
mov dword [esp + 0x30], eax
mov eax, 0xa2455f0c
or ebp, edx
mov edx, ebx
and ebx, 0xfdafdad4
not edx
and edx, 0x250252b
or edx, ebx
mov dword [esp + 0x2c], ecx
xor edx, ebp
xor esi, edx
and esi, edx
mov edx, esi
and esi, edi
not edi
not edx
mov ebx, edi
xor ebx, edx
and edx, edi
and ebx, edi
or edx, esi
mov ebp, ebx
mov esi, edx
and ebx, 0xb1a55f66
and edx, 0xb1a55f66
not ebp
not esi
mov edi, ebp
or ebp, esi
and esi, 0x4e5aa099
and edi, 0x4e5aa099
or edx, esi
not ebp
or ebx, edi
xor edx, ebx
or ebp, edx
mov dword [esp + 8], ebp
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
mov eax, dword [esp + 0x34]
movsx eax, byte [eax + 1]
shl eax, 8
mov edx, eax
mov esi, eax
mov ecx, eax
not edx
xor esi, 0x9e885600
and ecx, 0xa884000
mov edi, edx
and esi, eax
and eax, 0x2a962900
and edi, 0xd569d600
or eax, edi
mov edi, esi
and esi, 0xb390e00
xor eax, 0xfc350000
not edi
or eax, edx
and edx, 0x94001620
or ecx, edx
mov dword [esp + 0xc], eax
mov edx, ecx
xor ecx, 0xf577bf3d
mov ebx, ecx
xor edx, 0xa080000
or ecx, edi
and edi, 0xf4c6f1d2
and ebx, 0xf4c6f110
and edx, 0xa080620
or esi, edi
not ecx
or edx, ebx
xor esi, edx
or ecx, esi
mov edx, ecx
and ecx, 0xecb5a2c2
not edx
and edx, 0x134a5d35
or ecx, edx
mov edx, ecx
xor ecx, 0x8dc20bd7
mov esi, ecx
xor edx, 0x7204c000
and ecx, 0x295cd6a6
and edx, 0xf204c2c4
and esi, 0xdfb3d33
or esi, edx
xor esi, 0xdb58146a
or ecx, esi
mov edx, ecx
and ecx, 0x98a4a725
not edx
and edx, 0x675b58da
or ecx, edx
mov edx, eax
mov eax, dword [esp + 0x18]
mov ebx, ecx
xor ecx, 0x675b58da
not edx
and edx, ecx
xor ebx, 0x98a4a725
mov ecx, eax
not ecx
mov esi, ecx
mov edi, ecx
and esi, eax
and edi, esi
xor esi, ecx
or esi, edi
mov edi, esi
and esi, 0xbe79caa5
not edi
mov ebp, edi
and edi, 0x295cd6ae
and ebp, 0x4186355a
or ebp, esi
xor ebp, 0x97251c0b
or edi, ebp
mov ebp, ecx
and ecx, 0xd6a32951
mov esi, edi
and edi, 0xdc3798a7
and ebp, 0x682a461d
not esi
and esi, 0x23c86758
or edi, esi
mov esi, eax
and esi, 0x97d5b9e2
mov eax, edi
xor edi, 0x23c86758
or ebp, esi
mov esi, dword [esp + 0xc]
xor eax, 0x8c249823
xor ebp, 0x417690b3
and eax, 0xaf249c6b
or ecx, ebp
mov ebp, ecx
and ecx, 0x8996e1be
not ebp
and ebp, 0x76691e41
or ecx, ebp
mov ebp, ebx
xor ebp, esi
and esi, ebx
and ebp, ebx
or esi, edx
mov edx, ebp
and ebp, 0xb7d753d6
not edx
mov ebx, edx
and ebx, 0x4828ac29
or ebp, ebx
mov ebx, esi
and esi, 0xb7d753d6
not ebx
or edx, ebx
and ebx, 0x4828ac29
or esi, ebx
not edx
mov ebx, ecx
xor ecx, 0xd25857e5
xor esi, ebp
xor ebx, 0x76691e41
or edx, esi
and ecx, ebx
mov dword [esp + 0xc], edx
mov edx, edi
or edi, 0x5bceb65b
and edx, 0x50db6394
or eax, edx
mov edx, edi
and edi, 0xb5b66266
mov esi, eax
xor eax, 0x50ca2210
not edx
or eax, 0xa43149a4
and edx, 0x10980
xor esi, 0xaf249c6b
mov ebp, eax
or edx, edi
mov edi, ecx
and eax, 0xb5b66266
and ecx, 0x20d5c19d
not ebp
not edi
and ebp, 0x4a489419
or ebp, eax
mov eax, ebx
xor edx, ebp
mov ebp, edi
or eax, 0x5bceb65b
and ebp, 0xdf2a3e62
or edi, eax
or ecx, ebp
mov ebp, esi
xor esi, ebx
not edi
and ebp, ebx
mov ebx, eax
and eax, 0xdf2a3e62
not ebx
or esi, ebp
and ebx, 0x20114184
or ebx, eax
mov eax, edx
xor ebx, ecx
not eax
mov ecx, dword [esp + 0xc]
or edi, ebx
and eax, edi
not edi
and edi, edx
or edi, eax
mov eax, esi
and esi, 0x74060d37
mov edx, ecx
not eax
and edx, 0x1399ca95
and eax, 0x8bf9f2c8
or esi, eax
mov eax, edi
xor esi, 0x74060d37
and eax, esi
xor esi, edi
or esi, eax
mov eax, ecx
not eax
and eax, 0xec66356a
or edx, eax
mov eax, esi
and esi, 0xd6f050b6
not eax
xor edx, 0xec66356a
or edx, eax
and eax, 0x290faf49
or esi, eax
mov eax, edx
mov ebx, edx
xor esi, ecx
not eax
and ebx, 0x5e7262
xor esi, 0x290faf49
and eax, 0xffa18d9d
and esi, ecx
or eax, ebx
mov edi, esi
and esi, 0xffa18d9d
not edi
or edx, edi
and edi, 0x5e7262
or esi, edi
not edx
xor esi, eax
mov eax, 0x9651ba23
or edx, esi
mov dword [esp + 0xc], edx
nop dword [eax]
cmp eax, 0xc7d23d46
jle 0x404520
cmp eax, 0x2ab1d893
jle 0x4044b0
cmp eax, 0x5ea4870e
jle 0x4044e1
cmp eax, 0x6bfffdf5
je 0x404df7
cmp eax, 0x7ca0f769
je 0x404e13
cmp eax, 0x5ea4870f
jne 0x404470
jmp 0x405761
cmp eax, 0xe833e84b
jg 0x404a8a
cmp eax, 0xc7d23d47
je 0x404e3f
cmp eax, 0xd49de541
jne 0x404470
cmp dword [esp + 0x1c], 0x64
mov eax, 0xc7d23d47
mov ecx, 0xe833e84c
jmp 0x404e2c
cmp eax, 0x2ab1d894
je 0x404193
cmp eax, 0x35db18d4
jne 0x404470
mov eax, dword [esp + 0x38]
mov ecx, 0x9651ba23
mov dword [esp + 0xc], 0
cmp eax, 1
mov eax, 0x6bfffdf5
cmove eax, ecx
cmp eax, 0xc7d23d46
jg 0x40447b
nop
cmp eax, 0xa2455f0b
jg 0x404a50
cmp eax, 0x973cc685
jg 0x404b07
cmp eax, 0x8f40b22f
je 0x405288
cmp eax, 0x9651ba23
jne 0x404470
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0xc]
movsx esi, byte [eax]
mov eax, ebp
mov edx, ebp
mov edi, ebp
not eax
and edx, 0xc890a12
and edi, 0x926471a9
mov ecx, eax
and ecx, 0x61128444
or edx, ecx
mov ebx, esi
xor edx, 0xc890a12
not ebx
or edi, edx
mov edx, esi
and esi, 0xdf2c5c4e
mov ecx, edi
and edi, 0x6d9b8e56
and edx, 0xcf34b0b9
not ecx
and ecx, 0x926471a9
or edi, ecx
mov ecx, ebx
and ebx, 0x20d3a3b1
or esi, ebx
and ecx, 0x30cb4f46
not edi
mov ebx, esi
xor esi, 0x2082a131
or edx, ecx
xor ebx, 0x55205442
and esi, 0xaa8ea93d
xor edx, 0xcf34b0b9
and ebx, 0x557156c2
mov ecx, edx
or ebx, esi
and ecx, edi
xor edi, edx
mov esi, ebx
xor ebx, 0xaa8ea93d
or edi, ecx
xor esi, 0x557156c2
and ebx, ebp
mov ecx, edi
and edi, 0x17bcb536
and esi, eax
not ecx
or ebx, esi
and ecx, 0xe8434ac9
xor eax, ebx
or edi, ecx
and eax, ebx
mov ecx, edi
mov edx, edi
xor edi, 0xe38e008
mov ebx, eax
mov esi, eax
xor ecx, 0xe8434ac9
xor edx, 0x638a000
xor ebx, 0x1984553e
and esi, 0x4073a118
and edi, ecx
and edx, 0xe67baac1
and ebx, eax
not eax
mov ebp, edi
and eax, 0xbf8c5ee7
and ebp, edx
xor edx, edi
or esi, eax
or edx, ebp
mov eax, esi
xor esi, 0x19845426
or esi, 0xe67baac1
xor eax, 0x4073a118
mov edi, esi
mov ebp, esi
not edi
and ebp, 0xc60c42c1
and edi, 0x1980153e
or edi, ebp
mov ebp, ebx
and ebx, 0x39f3bd3e
not ebp
or esi, ebp
and ebp, 0xc60c42c1
or ebx, ebp
not esi
mov ebp, dword [esp + 0x48]
xor ebx, edi
mov edi, edx
and edx, 0xebe587dd
not edi
or esi, ebx
and edi, 0x141a7822
or edx, edi
mov edi, esi
and esi, 0xebe587dd
not edi
and edi, 0x141a7822
or esi, edi
xor esi, edx
mov edx, ecx
and edx, eax
xor eax, ecx
mov ecx, esi
or eax, edx
not eax
and ecx, eax
xor eax, esi
or eax, ecx
imul edx, eax, 0x5bd1e995
mov ecx, edx
mov ebx, edx
mov esi, edx
not ecx
and ebx, 0x12540067
xor esi, 0x13d64b6f
mov eax, ecx
and esi, edx
and ecx, 0x64ee4a79
xor edx, 0x9b11b586
and eax, 0x1824b08
or edx, ecx
or ebx, eax
mov eax, ebx
xor ebx, 0xedabff98
xor eax, 0x10440005
mov edi, ebx
and edi, 0xef1a08f2
and eax, 0x10c4430d
or eax, edi
mov edi, esi
and esi, 0x10e5f70d
not edi
or ebx, edi
and edi, 0xef1a08f2
or esi, edi
not ebx
mov edi, ebp
xor esi, eax
and edi, 0xa39f9bd7
or ebx, esi
mov esi, ebp
and ebp, 0x9152070
mov eax, ebx
and ebx, 0x13d64b6f
not esi
not eax
and eax, 0xec29b490
or ebx, eax
mov eax, ebx
and ebx, 0x7a65db7d
not eax
and eax, 0x859a2482
or ebx, eax
mov eax, ebx
xor ebx, 0xe1746efb
xor eax, 0x1a019104
and eax, 0x9b11b586
or ebx, eax
mov eax, edx
and edx, 0xc55a19e2
not eax
mov dword [esp], ebx
and eax, 0x3aa5e61d
or edx, eax
mov eax, esi
and esi, 0xf6eadf8f
and eax, 0x5c606428
or ebp, esi
mov ecx, edx
xor edx, 0x3aa5e61d
or edi, eax
xor ecx, 0xc55a19e2
mov eax, edi
and edi, 0x5c606428
not eax
and eax, 0xa39f9bd7
or edi, eax
mov ebx, edi
and edi, 0x30f34096
not ebx
mov eax, ebx
and eax, 0xcf0cbf69
or edi, eax
mov eax, dword [esp]
xor edi, 0x541d0aef
xor ebx, edi
and ebx, edi
mov edi, ebp
xor ebp, 0xb2688508
xor edi, 0x9152070
and ebp, 0xbb78a548
not eax
mov esi, edi
and edi, 0x64ee4a79
and esi, 0x44875ab7
or esi, ebp
mov ebp, dword [esp]
xor esi, 0xdf96ef31
or edi, esi
mov esi, edi
and edi, 0x13ecc5a9
not esi
and ecx, ebp
or ebp, edx
and edx, eax
and esi, 0xec133a56
mov eax, ebp
or edx, ecx
or edi, esi
not eax
mov esi, edi
and eax, 0xf97b8571
xor esi, 0x13ecc5a9
mov dword [esp + 0x10], esi
mov esi, ebp
and esi, 0x6847a8e
or eax, esi
mov esi, edx
and edx, 0xf97b8571
not esi
or ebp, esi
and esi, 0x6847a8e
or edx, esi
not ebp
xor edx, eax
or ebp, edx
mov edx, ebx
and ebx, 0x741f2328
not edx
mov dword [esp], ebp
mov ebp, dword [esp + 0x10]
mov eax, edx
or edx, 0xa5248342
and eax, 0x8be0dcd7
mov esi, edx
and edx, 0xbf6fa48a
or ebx, eax
mov eax, edi
xor edi, 0xb6c846eb
not esi
xor eax, 0xe4131812
mov dword [esp + 0x14], ebx
and edi, ebp
and ebp, 0x90c26e4
xor ebx, 0x8be0dcd7
and esi, 0x40905835
and eax, 0xf6f3d91b
or esi, edx
or ebp, eax
mov eax, ebx
or eax, 0x5adb7cbd
mov edx, ebp
mov ecx, eax
and eax, 0xbf6fa48a
xor edx, 0x53d75a59
not ecx
and ecx, 0x340
or ecx, eax
mov eax, ebp
xor ebp, 0xf6f3d91b
xor eax, 0x90c26e4
xor esi, ecx
and edx, eax
mov dword [esp + 0x10], eax
mov eax, edx
and edx, 0xd316b127
not eax
mov ecx, eax
and ecx, 0x2ce94ed8
or edx, ecx
mov ecx, edi
and edi, 0xd316b127
not ecx
or eax, ecx
and ecx, 0x2ce94ed8
or edi, ecx
mov ecx, esi
not eax
and esi, 0xa851c8c3
xor edi, edx
not ecx
mov edx, dword [esp + 0x14]
and ecx, 0x57ae373c
or eax, edi
or esi, ecx
mov ecx, eax
and eax, 0xa851c8c3
not ecx
and ecx, 0x57ae373c
xor edx, 0x401e0220
or eax, ecx
mov ecx, ebx
and edx, 0xc9de4eb1
or ebx, ebp
and ebp, 0x3621b14e
and ecx, 0x3621b14e
not ebx
xor eax, esi
or edx, ecx
mov ecx, dword [esp + 0x10]
and ecx, 0xc9de4eb1
or ecx, ebp
xor ecx, edx
or ebx, ecx
mov ecx, ebx
and ebx, 0x13e9a421
not ecx
and ecx, 0xec165bde
or ebx, ecx
mov ecx, eax
xor ebx, 0x13e9a421
and ecx, ebx
xor ebx, eax
mov eax, dword [esp]
or ebx, ecx
mov ebp, ebx
or ebx, 0xd6ac4baf
not ebp
mov edx, eax
or ebp, 0x2953b450
xor edx, 0x2953b450
and edx, eax
or eax, 0xd6ac4baf
mov ecx, eax
mov esi, eax
not ecx
and esi, 0xf0c0ad22
and ecx, 0x9131050
or ecx, esi
mov esi, edx
and edx, 0xf3f52dd
not esi
or eax, esi
and esi, 0xf0c0ad22
or edx, esi
not eax
mov esi, ebp
and ebp, 0x5de88e86
xor edx, ecx
not esi
or eax, edx
mov edx, ebx
and esi, 0x82044129
and ebx, 0x5de88e86
not edx
or esi, ebp
mov edi, eax
and eax, 0x127a27b1
and edx, 0x20133050
not edi
or edx, ebx
and edi, 0xed85d84e
xor esi, edx
or eax, edi
mov edx, esi
and esi, 0x127a27b1
not edx
and edx, 0xed85d84e
or esi, edx
xor esi, eax
mov eax, 0x5ea4870f
mov dword [esp], esi
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
cmp eax, 0xb6721f0f
jg 0x404b33
cmp eax, 0xa2455f0c
je 0x4054df
cmp eax, 0xb51db19d
jne 0x404470
mov eax, dword [esp + 0x34]
mov eax, 0x8f40b22f
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
cmp eax, 0xe833e84c
je 0x405516
cmp eax, 0x45cb207
jne 0x404470
mov eax, dword [esp + 0x30]
shl eax, 2
add eax, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x10]
mov ecx, eax
mov esi, eax
and eax, 0x728b1e17
not ecx
and esi, 3
mov edx, ecx
and ecx, 0x8d74e1e8
or eax, ecx
and edx, 0xfffffffc
mov ecx, eax
or esi, edx
xor eax, 0x8d74e1e8
and eax, esi
xor ecx, 0x728b1e17
not esi
and ecx, esi
or eax, ecx
not eax
or eax, esi
not eax
mov dword [esp + 0x38], eax
mov eax, 0xa05ed964
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
cmp eax, 0x973cc686
je 0x4055c2
cmp eax, 0xa05ed964
jne 0x404470
mov eax, dword [esp + 0x38]
mov ecx, 0x35db18d4
cmp eax, 2
mov eax, 0x7ca0f769
jmp 0x404e2c
cmp eax, 0xb6721f10
je 0x4056e5
cmp eax, 0xc2af3bcb
jne 0x404470
lea eax, [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [0x44e518]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov esi, ecx
not eax
and esi, 0x63021f92
mov edx, eax
and eax, 0x2c790168
and edx, 0x8cacc029
or esi, edx
mov edx, ecx
and ecx, 0xd386fe97
xor esi, 0x63021f92
and edx, 0x10512044
or eax, ecx
mov ecx, dword [0x44e51c]
or edx, esi
mov esi, edx
and edx, 0xefaedfba
not esi
and esi, 0x10512045
or edx, esi
mov esi, edx
and edx, 0x2c790168
not esi
mov edi, esi
and edi, 0xd386fe97
or edx, edi
mov edi, 0x52e8995e
xor eax, edx
not eax
or eax, esi
mov esi, 0x60ab93c
cmp eax, 0xffffffff
setne dl
sete ah
sete byte [esp + 0x50]
cmp ecx, 9
setg dh
cmp ecx, 0xa
setl al
setl byte [esp + 0x58]
mov cl, dh
and ah, dh
or dh, dl
xor cl, dl
xor dh, 1
and al, dl
or dh, cl
mov dl, cl
or al, ah
xor dh, 1
mov ah, al
mov ebx, eax
and dl, dh
xor dh, cl
xor ah, 1
or dh, dl
mov ch, ah
mov dl, dh
and ch, al
xor dl, 1
xor ch, 1
mov cl, dl
xor bl, ch
or ch, al
and cl, dh
xor ch, 1
xor dl, cl
xor cl, 1
or ch, bl
or cl, dh
xor cl, 1
or cl, dl
mov edx, ecx
xor dl, 1
mov dh, dl
mov ebx, edx
xor ah, dl
and dh, cl
or cl, al
xor cl, 1
and bl, dh
xor dh, dl
or dh, bl
or cl, ah
xor dh, ch
mov eax, ecx
xor al, dh
test al, 1
cmovne esi, edi
test cl, 1
mov edi, 0x60ab93c
mov ecx, 0x1b05c369
cmovne edi, esi
test dh, 1
cmove edi, esi
nop dword [eax]
cmp ecx, 0x46878659
jg 0x404dc0
cmp ecx, 0x60ab93c
je 0x405702
cmp ecx, 0x1b05c369
jne 0x404c90
mov dh, byte [esp + 0x50]
mov dl, byte [esp + 0x58]
mov esi, 0x4687865a
mov ch, dh
xor ch, 1
mov bl, ch
mov cl, ch
and bl, dh
and cl, bl
xor bl, ch
xor ch, dh
or bl, cl
and ch, dh
mov cl, bl
mov dh, ch
mov al, ch
xor cl, 1
xor dh, 1
or bl, cl
mov bh, bl
and al, bl
xor bh, 1
or ch, bh
and bh, dh
xor dh, bl
or bh, al
mov eax, edx
xor ch, 1
xor al, 1
or ch, dh
mov dh, bh
mov ah, al
xor ch, 1
or ah, dl
and dh, ch
xor ch, bh
mov bl, ah
or ch, dh
mov dh, ah
xor bl, 1
and dh, bl
xor ah, dh
xor dh, 1
or dh, bl
xor dh, 1
or dh, ah
mov ah, dh
and dh, dl
xor ah, 1
and ah, al
mov al, bl
or bl, dl
or dh, ah
xor al, dl
xor bl, 1
xor dh, 1
or bl, al
mov al, dh
or dh, bl
xor al, bl
mov bl, ch
xor dh, 1
xor bl, 1
or dh, al
mov al, ch
and bl, ch
xor bl, 1
xor al, bl
or bl, ch
xor bl, 1
or bl, al
mov eax, ebx
and bl, dh
xor dh, 1
xor al, 1
and al, dh
or bl, al
mov eax, ecx
xor cl, dl
or al, dl
mov edx, eax
xor dl, cl
xor cl, 1
or cl, al
xor dl, 1
xor cl, 1
or cl, dl
mov edx, ebx
mov eax, ecx
xor dl, 1
xor al, 1
and al, dl
or dl, cl
and cl, bl
mov ebx, 0x52e8995e
or cl, al
mov eax, ecx
xor al, dl
test cl, 1
mov ecx, 0x52e8995e
cmovne ecx, esi
test dl, 1
cmovne ecx, ebx
test al, 1
cmove ecx, esi
cmp ecx, 0x46878659
jle 0x404c9c
nop word cs:[eax + eax]
nop
cmp ecx, 0x4687865a
je 0x404de7
cmp ecx, 0x52e8995e
jne 0x404c90
mov ecx, 0x4687865a
cmp ecx, 0x46878659
jle 0x404c9c
jmp 0x404dc0
mov ecx, edi
cmp ecx, 0x46878659
jle 0x404c9c
jmp 0x404dc0
mov ecx, dword [esp + 0x48]
mov eax, 0x5ea4870f
mov dword [esp], ecx
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
mov eax, dword [esp + 0x38]
mov ecx, 0x2ab1d894
mov dword [esp + 0x18], 0
cmp eax, 3
mov eax, 0x973cc686
cmovl eax, ecx
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
imul eax, dword [ecx + eax*4], 0x5bd1e995
mov edi, eax
mov ebx, eax
shr edi, 0x18
not ebx
mov esi, edi
mov ebp, ebx
not esi
and ebp, 0x746ef6a1
mov ecx, esi
mov edx, esi
and ecx, edi
and edx, ecx
xor ecx, esi
or ecx, edx
mov edx, ecx
and ecx, 0x9805bb77
not edx
and edx, 0xffffff88
or ecx, edx
mov edx, ebx
xor ecx, 0x9805bb77
and edx, ecx
xor ecx, ebx
and ebx, eax
and eax, 0x8b91095e
or eax, ebp
or ecx, edx
xor eax, 0x8b91095e
mov edx, ecx
mov ebp, eax
xor eax, ebx
not edx
and ebp, ebx
or eax, ebp
and edi, eax
not eax
and eax, esi
or eax, edi
mov edi, ecx
xor ecx, 0x2a4c805
xor esi, eax
and edi, 0x239db2a9
and ecx, edx
and esi, eax
mov eax, edx
mov ebp, esi
and eax, 0xdc624d56
xor ebp, 0xfd5b37fa
or eax, edi
mov edi, esi
and ebp, esi
not esi
and edi, 0xdbaa1b6e
mov edx, eax
and esi, 0x2455e491
xor edx, 0xdc624d56
or edi, esi
mov esi, eax
mov dword [esp + 8], edx
xor eax, 0x239db2a9
xor esi, 0xdec68553
mov dword [esp + 4], edi
and esi, edx
mov ebx, esi
and esi, 0x862d8dd2
not ebx
mov edx, ebx
and edx, 0x79d2722d
or esi, edx
mov edx, ecx
and ecx, 0x862d8dd2
not edx
or ebx, edx
and edx, 0x79d2722d
or ecx, edx
mov edx, edi
xor edi, 0xdbaa1b6e
not ebx
xor edx, 0xd90ed36b
xor ecx, esi
and edx, edi
or ebx, ecx
and edi, 0x5fe7c809
mov ecx, edx
and edx, 0xefbe6520
not ecx
mov esi, ecx
and esi, 0x10419adf
or edx, esi
mov esi, ebp
and ebp, 0xefbe6520
not esi
or ecx, esi
and esi, 0x10419adf
or ebp, esi
not ecx
mov esi, dword [esp + 8]
xor ebp, edx
mov edx, ebx
and ebx, 0xbb65dc23
not edx
or ecx, ebp
and edx, 0x449a23dc
or ebx, edx
mov edx, ecx
and ecx, 0xbb65dc23
and esi, 0x5fe7c809
not edx
and edx, 0x449a23dc
or ecx, edx
mov edx, eax
xor ecx, ebx
mov ebx, dword [esp + 4]
and edx, 0xa01837f6
or esi, edx
xor ebx, 0x2455e491
mov edx, ebx
or eax, ebx
and edx, 0xa01837f6
not eax
or edi, edx
xor edi, esi
mov esi, ecx
and ecx, 0xc1d3f961
or eax, edi
not esi
mov edx, eax
mov edi, esi
or esi, eax
and eax, 0x3e2c069e
not edx
and edi, 0x3e2c069e
not esi
and edx, 0xc1d3f961
or ecx, edi
or edx, eax
imul eax, dword [esp + 0x48], 0x5bd1e995
xor edx, ecx
or esi, edx
imul ecx, esi, 0x5bd1e995
mov esi, ecx
mov edi, ecx
and ecx, 0x64ac64ff
not esi
and edi, 0x61716dfb
mov edx, esi
mov ebp, esi
and edx, 0x9e8e9204
or ebp, 0x6f06429b
or edi, edx
mov edx, ebp
and ebp, 0x71ee299d
mov ebx, edi
xor edi, 0x60000
not edx
xor ebx, 0x4002
or edi, 0x10e82904
and edx, 0x80119460
and edi, 0x71ee299d
and ebx, 0xe004202
or edx, ebp
or ebx, edi
xor edx, ebx
mov ebx, eax
mov edi, edx
and edx, 0x6f06429b
xor ebx, 0x64439433
not edi
and ebx, eax
and edi, 0x90f9bd64
or edx, edi
mov edi, edx
and edx, 0x9b539b00
not edi
and edi, 0x64ac64ff
or edx, edi
mov edi, edx
xor edi, 0x64ac64ff
and edi, edx
mov edx, esi
and edx, 0x9b539b00
or ecx, edx
xor esi, ecx
and esi, ecx
mov ecx, eax
xor eax, 0x64ac64ff
not ecx
mov edx, ecx
and ecx, 0x9b539b00
and edx, 0x64439433
or eax, ecx
mov ebp, edx
mov dword [esp + 4], eax
mov eax, edi
and ebp, ebx
xor ebx, edx
not eax
or ebx, ebp
mov dword [esp + 0x14], eax
mov edx, ebx
and ebx, 0x64439433
not edx
and edx, 0x9bbc6bcc
or ebx, edx
mov ebp, ebx
and ebx, 0x9b539b00
not ebp
mov edx, ebp
and edx, 0x64ac64ff
or ebx, edx
mov edx, esi
and esi, 0xbeda52c0
not edx
xor ebp, ebx
mov ecx, edx
and ebp, ebx
mov ebx, eax
or edx, 0x9bfe4f1
and ecx, 0x4125ad3f
and ebx, 0x9bfe4f1
mov dword [esp + 8], ebp
or esi, ecx
mov ecx, edi
mov ebp, ebx
xor ecx, 0x9bfe4f1
mov dword [esp + 0x10], esi
and ecx, edi
and ebp, ecx
xor ecx, ebx
mov ebx, esi
xor esi, 0x489a49ce
xor ebx, 0xbeda52c0
or ecx, ebp
and esi, ebx
and ebx, 0x4368f0de
mov ebp, esi
and esi, 0x160682d2
not ebp
mov eax, ebp
or ebp, edx
and eax, 0xe9f97d2d
not ebp
or esi, eax
mov eax, edx
and edx, 0xe9f97d2d
not eax
and eax, 0x16000202
or eax, edx
xor eax, esi
mov esi, dword [esp + 4]
or ebp, eax
mov eax, ecx
and ecx, 0x31a0db71
not eax
and eax, 0xce5f248e
or ecx, eax
mov eax, ebp
and ebp, 0x31a0db71
mov edx, esi
not eax
not edx
and eax, 0xce5f248e
or ebp, eax
mov eax, edi
xor ebp, ecx
mov ecx, dword [esp + 0x14]
and eax, 0xbc970f21
and ecx, 0x4368f0de
or ecx, eax
mov eax, dword [esp + 0x10]
xor eax, 0x4125ad3f
or edi, eax
and eax, 0xbc970f21
or ebx, eax
not edi
mov eax, ebp
xor ebx, ecx
or edi, ebx
not edi
and eax, edi
xor edi, ebp
or edi, eax
mov eax, dword [esp + 8]
not edi
mov ecx, eax
not ecx
and edx, ecx
or ecx, esi
and esi, eax
mov eax, ecx
or esi, edx
mov edx, ecx
not eax
and edx, 0x975f2709
and eax, 0x68a0d8f6
or eax, edx
mov edx, esi
and esi, 0x68a0d8f6
not edx
or ecx, edx
and edx, 0x975f2709
or esi, edx
not ecx
xor esi, eax
mov eax, edi
or ecx, esi
xor eax, ecx
or edi, ecx
not eax
and eax, ecx
mov edx, eax
and eax, 0x1f6d0591
not edx
mov ecx, edx
or edx, edi
and ecx, 0xe092fa6e
not edx
or eax, ecx
mov ecx, edi
and edi, 0xe092fa6e
not ecx
and ecx, 0x1f6d0591
or ecx, edi
xor ecx, eax
or edx, ecx
lea ecx, [esp + 0x20]
mov dword [esp + 8], edx
call fcn.00408e20
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 4], eax
mov eax, 0xa2455f0c
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
mov eax, dword [esp + 0x34]
movsx eax, byte [eax + 2]
shl eax, 0x10
mov dword [esp + 0x44], eax
mov eax, dword [0x44e528]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x3930defe
not eax
mov edx, eax
or eax, 0x8a066b00
and edx, 0xc6cf2101
or ecx, edx
mov edx, eax
and eax, 0x851bc376
mov esi, ecx
xor ecx, 0x80020100
not edx
xor esi, 0x8000800
or ecx, 0x5198076
and edx, 0x70e01489
and ecx, 0x851bc376
and esi, 0xa042800
or edx, eax
or esi, ecx
xor edx, esi
mov eax, edx
and edx, 0x8a066b00
not eax
and eax, 0x75f994ff
or edx, eax
mov eax, edx
mov ecx, edx
and edx, 0x9c03ed7b
or eax, 0xd0f89886
not ecx
mov esi, eax
mov edi, ecx
and eax, 0x280436ec
not esi
or edi, 0x2f076779
and esi, 0x7034111
or esi, eax
mov eax, edi
and edi, 0x280436ec
not eax
and eax, 0xd0f88802
or eax, edi
mov edi, 0xb6721f10
xor eax, esi
mov esi, eax
and eax, 0xfdb2233
not esi
and esi, 0xf024ddcc
or eax, esi
mov esi, ecx
and ecx, 1
and esi, 0x63fc1284
or esi, edx
mov edx, eax
xor eax, 0xdf23bab4
xor esi, 0x9c03ed7a
xor edx, 0x204c4001
or ecx, esi
and edx, 0xf34fd0a1
mov esi, ecx
and ecx, 0xbb32434
not esi
and esi, 0xf44cdbcb
or ecx, esi
mov esi, eax
and esi, 0xcb02f5e
or edx, esi
mov esi, ecx
xor ecx, 0xf44cdbcb
xor esi, 0x3030020
or eax, ecx
and ecx, 0xcb02f5e
and esi, 0xf34fd0a1
not eax
or esi, ecx
xor esi, edx
or eax, esi
mov esi, 0xb51db19d
mov ecx, eax
or eax, 0x704011
not ecx
and eax, 0x764933
mov edx, ecx
and ecx, 0x7501120c
or edx, 0x75071b2e
or ecx, eax
mov eax, edx
and edx, 0x764933
not eax
and eax, 0x8a88a4c0
or eax, edx
mov edx, dword [0x44e52c]
xor eax, ecx
mov ecx, eax
and eax, 0x75071b2e
not ecx
and ecx, 0x8af8e4d1
or eax, ecx
mov ecx, eax
and eax, 0x12dfef31
not ecx
and ecx, 0xed2010ce
or ecx, eax
xor ecx, 0xed2010ce
setne al
sete ah
cmp edx, 9
setg ch
cmp edx, 0xa
mov cl, al
setl dl
xor cl, ah
and cl, al
and al, dl
mov dh, cl
not dh
and dh, cl
mov bl, dh
xor dh, cl
and bl, cl
or dh, bl
mov cl, dh
xor cl, 1
and cl, dh
mov ebx, ecx
xor cl, dh
and bl, dh
or cl, bl
mov dh, cl
xor cl, 1
and cl, ch
and ch, ah
and dh, dl
or al, ch
mov ch, dl
xor dl, ah
or cl, dh
and ch, ah
or dl, ch
mov ah, dl
xor ah, al
xor al, 1
or al, dl
xor ah, 1
xor al, 1
or al, ah
mov edx, eax
xor dl, 1
mov ah, dl
and ah, al
xor dl, ah
xor ah, 1
or ah, al
mov al, cl
xor al, 1
xor ah, 1
and cl, al
or ah, dl
mov ebx, eax
xor cl, 1
xor ah, 1
mov edx, ecx
or cl, al
and bl, ah
xor dl, al
xor cl, 1
xor al, ah
or cl, dl
or al, bl
xor cl, ah
mov ch, cl
xor ch, al
not ch
test ch, 1
cmovne edi, esi
test al, 1
mov eax, 0xb6721f10
cmovne eax, edi
test cl, 1
cmovne eax, edi
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
mov eax, dword [esp + 8]
mov edx, 0xc2af3bcb
mov dword [esp + 0x48], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
mov eax, 0x45cb207
cmovl eax, edx
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
lea eax, [esp + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
cmp eax, dword [esp + 0x28]
mov eax, 0xef9eb75b
setne byte [esp + 0x57]
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0x50fae94e
jg 0x405580
cmp eax, 0xb23fb305
je 0x405718
cmp eax, 0xef9eb75b
jne 0x405540
lea eax, [esp + 0x1c]
mov ecx, 0x7ad7d075
mov dword [esp + 0x58], eax
mov eax, 0x50fae94f
cmp byte [esp + 0x57], 0
cmovne eax, ecx
cmp eax, 0x50fae94e
jle 0x405547
nop word [eax + eax]
cmp eax, 0x50fae94f
je 0x4055a1
cmp eax, 0x7ad7d075
jne 0x405540
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [ecx], eax
add dword [esp + 0x24], 4
jmp 0x4055b4
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x20]
push dword [esp + 0x58]
push dword [eax]
call fcn.00409140
mov eax, 0xb23fb305
cmp eax, 0x50fae94e
jle 0x405547
jmp 0x405580
mov ecx, dword [0x44e528]
lea eax, [ecx - 1]
imul eax, ecx
mov edx, eax
mov ecx, eax
and eax, 0xec6804be
or edx, 0x52f24134
not ecx
mov esi, edx
mov edi, ecx
and edx, 0x10825570
and ecx, 0x1397fb41
not esi
or edi, 0xad0dbecb
or eax, ecx
and esi, 0xad0daa8b
mov ecx, eax
xor eax, 0x1397fb41
or esi, edx
mov edx, edi
and edi, 0x10825570
xor ecx, 0xec6804be
not edx
and edx, 0x42700004
or edx, edi
xor edx, esi
mov esi, edx
and edx, 0x4087edb6
not esi
and esi, 0xbf781249
or edx, esi
mov esi, edx
xor edx, 0x1275ac83
xor esi, 0xed8a537c
and ecx, edx
and eax, esi
mov esi, 0xb51db19d
or eax, ecx
mov ecx, dword [0x44e52c]
xor edx, eax
test edx, eax
sete al
setne dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg ch
mov dh, ah
and dl, ch
and dh, al
or dh, dl
mov cl, dh
xor cl, ch
xor ch, al
not ch
and cl, dh
and ch, al
xor al, ah
and al, ah
mov dl, ch
mov ah, cl
and dl, al
xor al, ch
or al, dl
mov edx, eax
xor ah, al
xor dl, 1
mov ch, dl
and ch, al
xor dl, ch
xor ch, 1
or ch, al
or al, cl
xor ch, 1
xor al, 1
or ch, dl
or al, ah
mov dl, ch
xor ch, 1
and dl, cl
xor cl, 1
and ch, cl
mov cl, al
or ch, dl
mov edx, 0x8f40b22f
xor cl, ch
test cl, 1
cmovne edx, esi
test al, 1
mov eax, 0x8f40b22f
cmovne eax, edx
test ch, 1
cmove eax, edx
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
mov ecx, dword [esp + 0x44]
mov eax, 0x2ab1d894
mov dword [esp + 0x18], ecx
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
lea eax, [esp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], 0
jmp 0x40574c
mov ecx, 0x44f2b0
push dword [esp + 0x1c]
call fcn.00403860
mov edi, eax
mov eax, dword [eax]
mov ecx, dword [eax + 4]
add ecx, edi
push 0xa
call fcn.0041cb20
movsx eax, al
mov ecx, edi
push eax
call fcn.0041c4a0
mov ecx, edi
call fcn.0040b130
inc dword [esp + 0x1c]
mov eax, 0xd49de541
cmp eax, 0xc7d23d46
jg 0x40447b
jmp 0x404520
mov ebx, dword [esp]
mov ecx, ebx
shr ecx, 0xd
mov eax, ecx
mov edx, ecx
and ecx, 0x15afd
not eax
and edx, 0x7d0
mov esi, eax
and esi, 0x308ff82f
or esi, edx
mov edi, esi
xor esi, 0x1a805
xor edi, 0xcf7007d0
and esi, 0x1acc5
and edi, 0x57e6533a
or edi, esi
mov esi, ebx
mov edx, edi
xor edi, 0xa819acc5
not esi
xor edx, 0x57e6533a
and edi, ebx
and edx, esi
or edi, edx
mov edx, edi
xor edx, esi
and esi, 0x78c76a0d
and edx, edi
mov edi, ebx
xor edi, 0x78c76a0d
and edi, ebx
mov ebx, esi
and ebx, edi
xor edi, esi
or edi, ebx
mov ebx, eax
mov esi, edi
and edi, 0x78c76a0d
and ebx, 0x6a502
not esi
or ecx, ebx
and esi, 0x873895f2
or edi, esi
mov esi, edi
and edi, 0xb2ea036a
not esi
and esi, 0x4d15fc95
or edi, esi
mov esi, edi
xor edi, 0x4a400
xor esi, 0x268
and edi, 0x6a502
and esi, 0x15afd
or esi, edi
xor esi, ecx
not esi
or esi, eax
mov eax, edx
xor eax, 0x2d41d140
mov ecx, esi
and eax, edx
not edx
xor ecx, 0xd2be2ebf
mov edi, edx
mov ebx, edx
and ecx, esi
xor edx, esi
and edi, 0x2d41d140
and ebx, esi
not esi
mov ebp, edi
and esi, 0x62ebf
or edx, ebx
and ebp, eax
xor eax, edi
mov edi, ecx
not edx
or eax, ebp
and edi, esi
xor esi, ecx
mov ecx, eax
or esi, edi
not ecx
and ecx, esi
not esi
and esi, eax
or esi, ecx
mov eax, esi
and eax, edx
xor edx, esi
or edx, eax
imul edx, edx, 0x5bd1e995
mov eax, edx
shr eax, 0xf
mov ecx, eax
mov esi, eax
not ecx
and esi, 0xf05f
mov edi, ecx
mov ebp, ecx
and ecx, 0x8828ac52
and edi, eax
and ebp, 0x45490fa0
mov ebx, edi
or ebp, esi
mov esi, eax
and edi, 0x10fa0
not ebx
or esi, ebx
and ebx, 0xbab6f05f
or edi, ebx
not esi
mov ebx, edx
xor edi, ebp
mov ebp, edx
and ebx, 0x20088000
or esi, edi
xor ebp, 0xb988b24c
mov edi, esi
and esi, 0x7aa17009
and ebp, edx
not edi
and edi, 0x855e8ff6
or esi, edi
mov edi, esi
xor esi, 0x855e8ff6
and esi, edx
xor edi, 0x7aa17009
not edx
and edi, edx
or esi, edi
mov edi, esi
xor edi, edx
and edx, 0x9980324c
or ebx, edx
and edi, esi
xor ebx, 0x20088000
mov edx, ebx
and edx, ebp
xor ebp, ebx
mov ebx, eax
or ebp, edx
and ebx, 0x153ad
mov edx, ebp
and ebp, 0x4ff75f14
or ecx, ebx
not edx
and edx, 0xb008a0eb
or ebp, edx
mov edx, ebp
xor ebp, 0x1801001
xor edx, 0x862a4850
and ebp, 0x71d5b509
and edx, 0x8e2a4af6
or edx, ebp
mov esi, edx
xor edx, 0x71d5b509
xor esi, 0x88280852
or eax, edx
and edx, 0x77d753ad
and esi, 0x8828ac52
not eax
or esi, edx
mov edx, edi
xor esi, ecx
not edx
or eax, esi
and edx, 0x9224df5
mov ecx, eax
and eax, 0x13284bde
not ecx
and ecx, 0xecd7b421
or eax, ecx
mov ecx, edi
mov esi, eax
xor eax, 0xecd7b421
xor ecx, eax
xor esi, 0x1208020a
and eax, 0x9224df5
and esi, 0xf6ddb20a
and ecx, edi
and edi, 0xf6ddb20a
or esi, eax
or edi, edx
mov eax, ecx
xor esi, edi
and eax, esi
xor esi, ecx
mov ecx, dword [esp + 0x5c]
or esi, eax
xor ecx, esp
call fcn.0041d6b9
mov eax, esi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret