Function at 0x4156d0
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x820
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00404a30
mov esi, eax
cmp esi, 0
jne 0x4156f8
xor eax, eax
jmp 0x4174b2
xor edi, edi
jmp 0x4156fc
mov dword [esp], esi
call fcn.00404e70
cmp edi, eax
jb 0x41570f
mov al, 1
jmp 0x4174b2
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.00404e80
mov ebx, eax
mov al, byte [esp + 0xd0]
mov byte [esp + 0x110], al
mov byte [esp + 0x278], 0xbb
mov byte [esp + 0x279], 0x4f
mov eax, 2
mov byte [esp + eax + 0x278], 0
add eax, 1
cmp eax, 5
jne 0x415740
xor eax, eax
mov dword [esp + 0x48], ebx
cmp eax, 5
jae 0x4157ba
movzx edx, byte [esp + eax + 0x278]
mov ebx, eax
add ebx, 0xbe92f78d
mov ecx, 0x416d0872
sub ecx, eax
and ecx, 0x6b50b185
and ebx, 0x94af4e7a
or ecx, ebx
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x8e42547c
xor edx, 8
xor ecx, 0x2c719bbb
mov ebx, ecx
add ebx, edx
mov edx, ecx
shl edx, 1
and edx, 2
and ecx, 1
or ebx, 1
xor ecx, ebx
mov ebx, dword [esp + 0x48]
add ecx, edx
mov byte [esp + eax + 0x278], cl
add eax, 1
jmp 0x415756
lea eax, [esp + 0x278]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00404d50
cmp eax, 0
setne al
test al, 1
jne 0x4157e4
jmp 0x415903
mov al, byte [esp + 0xcc]
mov byte [esp + 0x114], al
mov byte [esp + 0x250], 0x42
mov byte [esp + 0x251], 0x75
mov byte [esp + 0x252], 0xf6
mov eax, 3
mov byte [esp + eax + 0x250], 0
add eax, 1
cmp eax, 5
jne 0x41580f
xor eax, eax
cmp eax, 5
jae 0x415843
mov cl, byte [esp + eax + 0x250]
mov dl, al
add dl, 0xd6
xor dl, cl
add dl, 0xd2
mov byte [esp + eax + 0x250], dl
add eax, 1
jmp 0x415821
lea eax, [esp + 0x250]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00404d50
cmp eax, 0
je 0x415903
mov al, byte [esp + 0xc8]
mov byte [esp + 0x118], al
mov byte [esp + 0x5c], 0x25
mov byte [esp + 0x5d], 0x81
mov eax, 2
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 4
jne 0x415884
xor eax, eax
mov dword [esp + 0x30], edi
cmp eax, 4
jae 0x4158d5
movzx ebx, byte [esp + eax + 0x5c]
mov ecx, 0x9f
sub ecx, eax
or ecx, ebx
mov edx, 0x9f
sub edx, eax
mov edi, 0x9f
sub edi, eax
or edx, edi
mov edi, dword [esp + 0x30]
and edx, ebx
mov ebx, dword [esp + 0x48]
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x20
mov byte [esp + eax + 0x5c], dl
add eax, 1
jmp 0x415897
lea eax, [esp + 0x5c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00404d50
cmp eax, 0
setne al
xor al, 0xff
and al, 1
or al, 0
jmp 0x4158fb
jmp 0x4158fd
test al, 1
jne 0x415903
jmp 0x415908
jmp 0x4174aa
mov al, byte [esp + 0xc4]
mov byte [esp + 0x11c], al
mov byte [esp + 0x270], 0xcf
mov byte [esp + 0x271], 0x5b
mov eax, 2
mov byte [esp + eax + 0x270], 0
add eax, 1
cmp eax, 8
jne 0x41592b
xor eax, eax
jmp 0x41593f
cmp eax, 8
jae 0x41597d
movzx edx, byte [esp + eax + 0x270]
mov edi, eax
shl edi, 1
and edi, 0x6845551e
mov ecx, eax
xor ecx, 0x3422aa8f
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edi, dword [esp + 0x30]
add cl, 0x35
mov byte [esp + eax + 0x270], cl
add eax, 1
jmp 0x41593f
lea eax, [esp + 0x270]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004046c0
mov dword [esp + 0x2b4], eax
mov al, byte [esp + 0xc0]
mov byte [esp + 0x120], al
mov byte [esp + 0x248], 0xfa
mov byte [esp + 0x249], 0xeb
mov byte [esp + 0x24a], 0x66
mov eax, 3
mov byte [esp + eax + 0x248], 0
add eax, 1
cmp eax, 5
jne 0x4159c2
xor eax, eax
cmp eax, 5
jae 0x4159f6
mov cl, byte [esp + eax + 0x248]
mov dl, al
add dl, 0x19
xor dl, cl
add dl, 0x83
mov byte [esp + eax + 0x248], dl
add eax, 1
jmp 0x4159d4
lea eax, [esp + 0x248]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004047f0
fnstcw word [esp + 0x62]
movzx eax, word [esp + 0x62]
or eax, 0xc00
mov word [esp + 0x17e], ax
fldcw word [esp + 0x17e]
fistp dword [esp + 0x2c4]
fldcw word [esp + 0x62]
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x38], eax
mov al, byte [esp + 0xbc]
mov byte [esp + 0x124], al
mov byte [esp + 0x58], 0xbb
mov byte [esp + 0x59], 0x27
mov eax, 2
mov byte [esp + eax + 0x58], 0
add eax, 1
cmp eax, 4
jne 0x415a59
xor eax, eax
cmp eax, 4
jae 0x415a9a
movzx edx, byte [esp + eax + 0x58]
mov ecx, eax
add ecx, 0x980412f9
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0xc8
add ecx, edx
add cl, 0x5a
mov byte [esp + eax + 0x58], cl
add eax, 1
jmp 0x415a68
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004047f0
fnstcw word [esp + 0x60]
movzx eax, word [esp + 0x60]
or eax, 0xc00
mov word [esp + 0x17c], ax
fldcw word [esp + 0x17c]
fistp dword [esp + 0x2c0]
fldcw word [esp + 0x60]
mov ebx, dword [esp + 0x2c0]
lea eax, [esp + 0x41c]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x2b4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040f3a0
lea eax, [esp + 0x41c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x26c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040fb40
test al, 1
jne 0x415b32
jmp 0x415b2d
jmp 0x4174a8
cmp ebx, 0
sete al
mov byte [esp + 0x47], al
test al, 1
jne 0x415b45
jmp 0x416ade
mov al, byte [esp + 0xb8]
mov byte [esp + 0x128], al
mov byte [esp + 0x264], 0xac
mov byte [esp + 0x265], 0x1b
mov eax, 2
mov ecx, dword [esp + 0x48]
mov byte [esp + eax + 0x264], 0
add eax, 1
cmp eax, 8
jne 0x415b6c
xor eax, eax
cmp eax, 8
jae 0x415bcc
movzx edx, byte [esp + eax + 0x264]
mov ecx, 4
sub ecx, eax
mov edi, 4
sub edi, eax
or ecx, edi
mov edi, 4
sub edi, eax
and ecx, edi
mov edi, dword [esp + 0x30]
mov ebx, eax
add ebx, 0xfb
or ebx, edx
xor edx, 0xffffffff
or ecx, edx
and ebx, ecx
add bl, 0x19
mov byte [esp + eax + 0x264], bl
mov ecx, dword [esp + 0x48]
add eax, 1
jmp 0x415b7e
lea eax, [esp + 0x264]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004046c0
cmp eax, 0
setne cl
test cl, 1
jne 0x415bef
jmp 0x415d22
mov dword [esp + 0x290], eax
mov dword [esp], eax
call fcn.004174c0
mov ebx, eax
mov dword [esp + 0x258], ebx
add ebx, 0xe2465d5d
add ebx, 1
sub ebx, 0xe2465d5d
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x415c2e
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov dword [esp + 0x74], eax
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x290]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040f3a0
xor eax, eax
lea eax, [esp + 0xb4]
mov dword [esp], 0
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x258]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44c00c]
sub esp, 0x18
mov eax, dword [esp + 0xb4]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x415cb8
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov ecx, dword [0x44c00c]
mov dword [esp + 0x288], ecx
mov ecx, dword [esp + 0xb4]
xor edx, edx
lea edx, [esp + 0xb4]
mov dword [esp], 0
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x258]
mov dword [esp + 8], ebx
mov ebx, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call dword [esp + 0x288]
sub esp, 0x18
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.0040cf70
jmp 0x415d1d
jmp 0x4161e0
mov al, byte [esp + 0xb0]
mov byte [esp + 0x12c], al
mov byte [esp + 0x54], 0x24
mov byte [esp + 0x55], 0x27
mov byte [esp + 0x56], 0x20
mov byte [esp + 0x57], 0xa0
xor eax, eax
cmp eax, 4
jae 0x415d73
movzx edx, byte [esp + eax + 0x54]
mov edi, eax
add edi, 9
mov ecx, edx
xor ecx, 0xffffffff
and edi, ecx
mov ecx, 0xf6
sub ecx, eax
and ecx, edx
or ecx, edi
add cl, 0xd3
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x415d46
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x14]
mov dword [esp], eax
call fcn.0040d800
call fcn.0040d810
jmp 0x415d89
and eax, 0xf
xor ecx, ecx
sub ecx, eax
add ecx, 0xfffffff0
xor edi, edi
sub edi, ecx
xor ecx, ecx
lea ebx, [esp + 0x3dc]
jmp 0x415da5
cmp ecx, edi
jb 0x415f2b
mov word [ebx], 0
mov al, byte [esp + 0xac]
mov byte [esp + 0x130], al
mov byte [esp + 0x64], 0x3b
mov byte [esp + 0x65], 0x1f
mov byte [esp + 0x66], 0xea
mov byte [esp + 0x67], 0x11
mov byte [esp + 0x68], 0xd7
mov byte [esp + 0x69], 0x13
mov byte [esp + 0x6a], 0xed
mov byte [esp + 0x6b], 0x15
mov byte [esp + 0x6c], 0xe4
mov byte [esp + 0x6d], 0x17
mov byte [esp + 0x6e], 0x31
mov byte [esp + 0x6f], 9
mov byte [esp + 0x70], 0xe4
mov byte [esp + 0x71], 0xb
mov byte [esp + 0x72], 0xa
mov byte [esp + 0x73], 0xd
xor eax, eax
cmp eax, 0x10
jae 0x415e2e
mov cl, byte [esp + eax + 0x64]
mov dl, al
add dl, 0x45
xor dl, cl
add dl, 0xa7
mov byte [esp + eax + 0x64], dl
add eax, 1
jmp 0x415e12
lea eax, [esp + 0x37c]
lea ecx, [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040e980
lea ecx, [esp + 0x3dc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040e980
mov ebx, eax
lea eax, [esp + 0x37c]
xor eax, 0xffffffff
add ebx, eax
add ebx, 1
sar ebx, 1
xor eax, eax
lea eax, [esp + 0x37c]
lea ecx, [esp + 0xa8]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44c00c]
sub esp, 0x18
mov eax, dword [esp + 0xa8]
xor ecx, ecx
sub ecx, eax
add ecx, 0xfffffffc
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x415ecf
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov edi, dword [0x44c00c]
mov ecx, dword [esp + 0xa8]
xor edx, edx
lea edx, [esp + 0x37c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov ebx, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xa8]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp dword [esp + 0x38], 0
sete al
test al, 1
mov edi, dword [esp + 0x30]
jne 0x415f60
jmp 0x416035
mov dword [esp + 0x28c], ecx
call fcn.0040d810
mov ecx, 0x24
cdq
idiv ecx
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov eax, ebx
add eax, 2
mov word [ebx], cx
mov ecx, dword [esp + 0x28c]
add ecx, 1
mov ebx, eax
jmp 0x415da5
mov al, byte [esp + 0xa4]
mov byte [esp + 0x134], al
mov byte [esp + 0x238], 0x4a
mov byte [esp + 0x239], 0x99
mov byte [esp + 0x23a], 0xb
mov byte [esp + 0x23b], 0x97
mov byte [esp + 0x23c], 0x1c
mov byte [esp + 0x23d], 0x95
mov byte [esp + 0x23e], 0xf
mov byte [esp + 0x23f], 0x93
mov byte [esp + 0x240], 0x90
mov byte [esp + 0x241], 0x91
mov eax, 0xa
mov byte [esp + eax + 0x238], 0
add eax, 1
cmp eax, 0xf
jne 0x415fc3
xor eax, eax
cmp eax, 0xf
jae 0x416019
movzx edx, byte [esp + eax + 0x238]
mov ecx, 0x99
sub ecx, eax
and ecx, edx
mov dword [esp + 0x2c], ebx
mov ebx, 0x99
sub ebx, eax
mov edi, 0x99
sub edi, eax
and ebx, edi
or ebx, edx
xor ebx, 0xffffffff
or ecx, ebx
mov ebx, dword [esp + 0x2c]
add cl, 2
mov byte [esp + eax + 0x238], cl
add eax, 1
jmp 0x415fd5
lea eax, [esp + 0x238]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004178a0
mov edi, dword [esp + 0x30]
jmp 0x4161e0
mov eax, dword [esp + 0x38]
cmp eax, 1
jne 0x41612b
mov al, byte [esp + 0xa0]
mov byte [esp + 0x138], al
mov byte [esp + 0x228], 0xca
mov byte [esp + 0x229], 0x19
mov byte [esp + 0x22a], 0x8a
mov byte [esp + 0x22b], 0x17
mov byte [esp + 0x22c], 0x80
mov byte [esp + 0x22d], 0x15
mov byte [esp + 0x22e], 0x86
mov byte [esp + 0x22f], 0x13
mov byte [esp + 0x230], 0x10
mov byte [esp + 0x231], 0x11
mov eax, 0xa
mov byte [esp + eax + 0x228], 0
add eax, 1
cmp eax, 0xf
jne 0x4160a5
xor eax, eax
cmp eax, 0xf
jae 0x41610f
movzx edx, byte [esp + eax + 0x228]
mov ecx, eax
add ecx, 0x2545b1c6
mov edi, eax
shl edi, 1
add edi, 0x8d
mov dword [esp + 0x2c], ebx
mov ebx, ecx
sub ebx, edi
and ebx, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, ebx
mov ebx, dword [esp + 0x2c]
add ecx, 0x8c8112c7
mov edx, ecx
xor edx, 0xa5
shl ecx, 1
and ecx, 0xb4
sub ecx, edx
mov byte [esp + eax + 0x228], cl
add eax, 1
jmp 0x4160b7
lea eax, [esp + 0x228]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004178a0
mov edi, dword [esp + 0x30]
jmp 0x4161e0
cmp eax, 2
jne 0x4161e0
mov al, byte [esp + 0x9c]
mov byte [esp + 0x13c], al
mov byte [esp + 0x218], 0xd6
mov byte [esp + 0x219], 0xbb
mov byte [esp + 0x21a], 0x2a
mov byte [esp + 0x21b], 0xb9
mov byte [esp + 0x21c], 0x2d
mov byte [esp + 0x21d], 0xbf
mov byte [esp + 0x21e], 0xe9
mov byte [esp + 0x21f], 0xbd
mov byte [esp + 0x220], 0xbc
mov byte [esp + 0x221], 0xb3
mov eax, 0xa
mov byte [esp + eax + 0x218], 0
add eax, 1
cmp eax, 0xe
jne 0x416197
xor eax, eax
cmp eax, 0xe
jae 0x4161cb
mov cl, byte [esp + eax + 0x218]
mov dl, al
add dl, 0x1f
xor dl, cl
add dl, 0x65
mov byte [esp + eax + 0x218], dl
add eax, 1
jmp 0x4161a9
lea eax, [esp + 0x218]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004178a0
jmp 0x4161e0
lea eax, [esp + 0x260]
xor ecx, ecx
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x18], 0x80
call fcn.00440880
mov dword [esp + 0x25c], eax
cmp eax, 0
mov dword [esp + 0x2c], ebx
jl 0x41635b
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x260]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00440fa0
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x260]
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0x104]
mov byte [esp + 0x168], al
mov byte [esp + 0x108], 0xef
mov byte [esp + 0x109], 0xee
mov byte [esp + 0x10a], 0xed
mov byte [esp + 0x10b], 0xec
mov eax, 4
mov byte [esp + eax + 0x108], 0
add eax, 1
cmp eax, 6
jne 0x4162a5
xor eax, eax
mov edi, dword [esp + 0x30]
cmp eax, 6
jae 0x4162dd
mov cl, byte [esp + eax + 0x108]
mov dl, al
add dl, 0x58
xor dl, cl
add dl, 0x48
mov byte [esp + eax + 0x108], dl
add eax, 1
jmp 0x4162bb
mov ecx, dword [esp + 0x108]
xor ebx, ebx
cmp ebx, dword [0x44c010]
jb 0x4162f0
jmp 0x416357
mov eax, dword [0x44c014]
cmp dword [eax + ebx*8], 0xb62b8d10
sete dl
test dl, 1
jne 0x416306
jmp 0x41634b
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
jne 0x416310
jmp 0x41634b
mov dword [esp + 0x2a0], ecx
mov ecx, dword [0x44c018]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0xc], eax
mov byte [esp + 0x43], dl
call fcn.0043d120
mov dl, byte [esp + 0x43]
mov ecx, dword [esp + 0x2a0]
test dl, 1
jne 0x416355
add ebx, 1
jmp 0x4162e6
jmp 0x416357
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00439840
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x25c], 0
setge al
test al, 1
jne 0x416392
jmp 0x416380
mov dword [esp + 0x34], 0
mov eax, 4
jmp 0x416ac7
mov eax, dword [esp + 0x38]
cmp eax, 1
jne 0x4167a8
mov al, byte [esp + 0x98]
mov byte [esp + 0x140], al
mov byte [esp + 0x210], 0x8e
mov byte [esp + 0x211], 0x99
mov byte [esp + 0x212], 0x2a
mov eax, 3
mov byte [esp + eax + 0x210], 0
add eax, 1
cmp eax, 5
jne 0x4163ca
xor eax, eax
cmp eax, 5
jae 0x41644e
mov cl, byte [esp + eax + 0x210]
mov edi, eax
xor edi, 0xb74dee78
mov edx, eax
or edx, 0x48b21187
and edx, edi
mov edi, eax
and edi, 2
xor edi, 2
mov ebx, edx
and ebx, 0xfffffffd
imul ebx, edi
mov edi, eax
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
mov ebx, eax
xor ebx, 0x48b21187
mov edi, ebx
and edi, edx
shl edi, 1
xor ebx, edx
add ebx, edi
xor bl, cl
add bl, 0x5d
mov byte [esp + eax + 0x210], bl
mov ebx, dword [esp + 0x2c]
mov ecx, eax
add ecx, 7
xor edx, edx
sub edx, eax
and edx, 6
and ecx, 9
sub ecx, edx
mov eax, ecx
jmp 0x4163dc
lea eax, [esp + 0x210]
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004046c0
mov dword [esp + 0x7c], eax
mov al, byte [esp + 0x94]
mov byte [esp + 0x144], al
mov byte [esp + 0x50], 0x63
mov byte [esp + 0x51], 0x6d
mov byte [esp + 0x52], 0xda
mov eax, 3
mov byte [esp + eax + 0x50], 0
add eax, 1
cmp eax, 4
jne 0x41648b
xor eax, eax
cmp eax, 4
jae 0x4164d8
movzx edx, byte [esp + eax + 0x50]
mov ecx, eax
add ecx, 0x81173daf
or ecx, edx
mov edi, eax
add edi, 0xaf
and edi, edx
sub ecx, edi
mov edx, ecx
xor edx, 0x93
add edx, 1
shl ecx, 1
and ecx, 0x26
or ecx, 1
add edx, ecx
mov byte [esp + eax + 0x50], dl
add eax, 1
jmp 0x41649a
lea eax, [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004046c0
mov edi, eax
mov dword [esp], ebx
call fcn.004178f0
mov ebx, eax
cmp dword [esp + 0x7c], 0
setne al
mov dword [esp + 0x78], 0
mov byte [esp + 0x45], al
test al, 1
jne 0x416512
jmp 0x41652f
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call fcn.0040d180
sub eax, 0xdc9a9036
add eax, 1
add eax, 0xdc9a9036
mov dword [esp + 0x78], eax
cmp edi, 0
setne al
xor ecx, ecx
mov byte [esp + 0x46], al
test al, 1
jne 0x416541
jmp 0x416555
mov dword [esp], edi
call fcn.0040d180
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
jmp 0x416555
mov dword [esp + 0x2bc], edi
add ebx, 0xb1e24343
sub ebx, 0xb1e2433a
add ebx, dword [esp + 0x78]
sub ebx, 0x3dfd5f87
mov dword [esp + 0x2b8], ecx
add ebx, ecx
add ebx, 0x3dfd5f87
sub ebx, 0xea4109da
add ebx, 1
add ebx, 0xea4109da
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4165a8
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov cl, byte [esp + 0x90]
mov byte [esp + 0x148], cl
mov byte [esp + 0x1f8], 0x72
mov byte [esp + 0x1f9], 0xdb
mov byte [esp + 0x1fa], 0x51
mov byte [esp + 0x1fb], 0xd9
mov byte [esp + 0x1fc], 0x6a
mov byte [esp + 0x1fd], 0xdf
mov byte [esp + 0x1fe], 0x7a
mov byte [esp + 0x1ff], 0xdd
mov byte [esp + 0x200], 0x60
mov byte [esp + 0x201], 0xd3
mov byte [esp + 0x202], 0x6e
mov byte [esp + 0x203], 0xd1
mov byte [esp + 0x204], 0x25
mov byte [esp + 0x205], 0xd7
mov byte [esp + 0x206], 0x20
mov byte [esp + 0x207], 0xd5
mov byte [esp + 0x208], 0xd4
mov byte [esp + 0x209], 0xab
mov ecx, 0x12
mov edi, dword [esp + 0x2c]
mov byte [esp + ecx + 0x1f8], 0
add ecx, 1
cmp ecx, 0x15
jne 0x416657
xor ecx, ecx
mov dword [esp + 0x34], eax
cmp ecx, 0x15
jae 0x4166cc
mov al, byte [esp + ecx + 0x1f8]
mov edx, ecx
and edx, 0xe9e4882d
mov edi, ecx
and edi, 2
xor edi, 2
mov ebx, ecx
and ebx, 0xe9e4882d
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
mov ebx, ecx
xor ebx, 0xe9e4882f
mov edi, ebx
and edi, edx
shl edi, 1
xor ebx, edx
add ebx, edi
xor bl, al
add bl, 0x15
mov byte [esp + ecx + 0x1f8], bl
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
add ecx, 1
jmp 0x41666d
lea ecx, [esp + 0x1f8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040e980
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
mov dword [esp], ecx
mov dword [esp + 4], edi
call fcn.0040e980
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
jmp 0x41670a
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.0040cf70
mov al, byte [esp + 0x45]
jmp 0x41671c
test al, 1
jne 0x416726
mov edi, dword [esp + 0x30]
jmp 0x41675c
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040f3a0
shl eax, 1
add edi, eax
mov ebx, edi
mov edi, dword [esp + 0x30]
test byte [esp + 0x46], 1
jne 0x416765
jmp 0x416799
mov eax, ebx
add eax, 2
mov word [ebx], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2b8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040f3a0
jmp 0x416799
xor ebx, ebx
mov dword [esp + 0x38], 0
jmp 0x416ac5
cmp eax, 2
sete al
mov dword [esp + 0x34], 0
test al, 1
jne 0x4167bf
jmp 0x416ac5
mov dword [esp], ebx
call fcn.004178f0
mov ecx, eax
and ecx, 0x1d
shl ecx, 1
xor eax, 0x1d
add eax, ecx
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4167ec
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x8c]
mov byte [esp + 0x14c], al
mov byte [esp + 0x4c], 0x62
mov byte [esp + 0x4d], 0x41
mov byte [esp + 0x4e], 0x42
mov byte [esp + 0x4f], 0x43
xor eax, eax
cmp eax, 4
jae 0x416841
mov dl, byte [esp + eax + 0x4c]
mov edi, eax
shl edi, 1
and edi, 0x20
mov ecx, eax
xor ecx, 0x10
add ecx, edi
xor cl, dl
add cl, 0xb0
mov byte [esp + eax + 0x4c], cl
add eax, 1
jmp 0x41681c
mov al, byte [esp + 0x88]
mov byte [esp + 0x150], al
mov byte [esp + 0x180], 0x40
mov byte [esp + 0x181], 0x31
mov byte [esp + 0x182], 0x45
mov byte [esp + 0x183], 0x33
mov byte [esp + 0x184], 0x43
mov byte [esp + 0x185], 0x3d
mov byte [esp + 0x186], 0x53
mov byte [esp + 0x187], 0x3f
mov byte [esp + 0x188], 0x4a
mov byte [esp + 0x189], 0x39
mov byte [esp + 0x18a], 0x49
mov byte [esp + 0x18b], 0x3b
mov byte [esp + 0x18c], 0x2c
mov byte [esp + 0x18d], 0x45
mov byte [esp + 0x18e], 0x2b
mov byte [esp + 0x18f], 0x47
mov byte [esp + 0x190], 0x34
mov byte [esp + 0x191], 0x41
mov byte [esp + 0x192], 0x36
mov byte [esp + 0x193], 0x43
mov byte [esp + 0x194], 0x6c
mov byte [esp + 0x195], 0x4d
mov byte [esp + 0x196], 0x7b
mov byte [esp + 0x197], 0x4f
mov byte [esp + 0x198], 0x25
mov byte [esp + 0x199], 0x49
mov byte [esp + 0x19a], 0x32
mov byte [esp + 0x19b], 0x4b
mov byte [esp + 0x19c], 0x39
mov byte [esp + 0x19d], 0x55
mov byte [esp + 0x19e], 0x35
mov byte [esp + 0x19f], 0x57
mov byte [esp + 0x1a0], 0x70
mov byte [esp + 0x1a1], 0x51
mov byte [esp + 0x1a2], 0x30
mov byte [esp + 0x1a3], 0x53
mov byte [esp + 0x1a4], 0x25
mov byte [esp + 0x1a5], 0x5d
mov byte [esp + 0x1a6], 0x2e
mov byte [esp + 0x1a7], 0x5f
mov byte [esp + 0x1a8], 0x39
mov byte [esp + 0x1a9], 0x59
mov byte [esp + 0x1aa], 0x29
mov byte [esp + 0x1ab], 0x5b
mov byte [esp + 0x1ac], 0x17
mov byte [esp + 0x1ad], 0x65
mov byte [esp + 0x1ae], 0x46
mov byte [esp + 0x1af], 0x67
mov byte [esp + 0x1b0], 0x55
mov byte [esp + 0x1b1], 0x61
mov byte [esp + 0x1b2], 0xc
mov byte [esp + 0x1b3], 0x63
mov byte [esp + 0x1b4], 0x4c
mov byte [esp + 0x1b5], 0x6d
mov byte [esp + 0x1b6], 0x4c
mov byte [esp + 0x1b7], 0x6f
mov byte [esp + 0x1b8], 0x68
mov byte [esp + 0x1b9], 0x69
mov eax, 0x3a
mov byte [esp + eax + 0x180], 0
add eax, 1
cmp eax, 0x40
jne 0x416a24
xor eax, eax
cmp eax, 0x40
jae 0x416a84
movzx edx, byte [esp + eax + 0x180]
mov ecx, eax
add ecx, 0xdb1d85b4
mov edi, eax
add edi, 0xb4
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, ecx
add edx, 0xd2
mov edi, 0x2d
sub edi, ecx
and edi, 0x57
and edx, 0xa8
sub edx, edi
add dl, 1
mov byte [esp + eax + 0x180], dl
add eax, 1
jmp 0x416a36
lea eax, [esp + 0x180]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040e980
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040e980
lea ecx, [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040e980
mov edi, dword [esp + 0x30]
mov dword [esp + 0x38], 2
jmp 0x416ac5
xor eax, eax
cmp eax, 0
sete al
test al, 1
mov ecx, dword [esp + 0x38]
jne 0x416db7
jmp 0x4174a8
xor ebx, 1
mov eax, dword [esp + 0x38]
xor eax, 2
or ebx, eax
sete al
test al, 1
jne 0x416b04
mov dword [esp + 0x34], 0
xor ebx, ebx
mov ecx, dword [esp + 0x38]
jmp 0x416db7
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004174c0
mov ebx, eax
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x416b2d
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov edi, eax
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040f3a0
mov ecx, dword [esp + 0x26c]
mov eax, ecx
and eax, 0x18
or ecx, 0x18
add eax, ecx
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x416b88
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov cl, byte [esp + 0x84]
mov byte [esp + 0x154], cl
mov byte [esp + 0x1c0], 0x58
mov byte [esp + 0x1c1], 0xc9
mov byte [esp + 0x1c2], 0x5d
mov byte [esp + 0x1c3], 0xcf
mov byte [esp + 0x1c4], 0x47
mov byte [esp + 0x1c5], 0xcd
mov byte [esp + 0x1c6], 0x67
mov byte [esp + 0x1c7], 0xc3
mov byte [esp + 0x1c8], 0x56
mov byte [esp + 0x1c9], 0xc1
mov byte [esp + 0x1ca], 0x51
mov byte [esp + 0x1cb], 0xc7
mov byte [esp + 0x1cc], 0x5c
mov byte [esp + 0x1cd], 0xc5
mov byte [esp + 0x1ce], 0x1f
mov byte [esp + 0x1cf], 0xbb
mov byte [esp + 0x1d0], 0x24
mov byte [esp + 0x1d1], 0xb9
mov byte [esp + 0x1d2], 0x22
mov byte [esp + 0x1d3], 0xbf
mov byte [esp + 0x1d4], 0x5c
mov byte [esp + 0x1d5], 0xbd
mov byte [esp + 0x1d6], 0x6f
mov byte [esp + 0x1d7], 0xb3
mov byte [esp + 0x1d8], 0x15
mov byte [esp + 0x1d9], 0xb1
mov byte [esp + 0x1da], 0x3e
mov byte [esp + 0x1db], 0xb7
mov byte [esp + 0x1dc], 0x11
mov byte [esp + 0x1dd], 0xb5
mov byte [esp + 0x1de], 0xd
mov byte [esp + 0x1df], 0xab
mov byte [esp + 0x1e0], 0x48
mov byte [esp + 0x1e1], 0xa9
mov byte [esp + 0x1e2], 8
mov byte [esp + 0x1e3], 0xaf
mov byte [esp + 0x1e4], 0x25
mov byte [esp + 0x1e5], 0xad
mov byte [esp + 0x1e6], 0x32
mov byte [esp + 0x1e7], 0xa3
mov byte [esp + 0x1e8], 1
mov byte [esp + 0x1e9], 0xa1
mov byte [esp + 0x1ea], 0x31
mov byte [esp + 0x1eb], 0xa7
mov byte [esp + 0x1ec], 0x33
mov byte [esp + 0x1ed], 0xa5
mov byte [esp + 0x1ee], 0x7a
mov byte [esp + 0x1ef], 0x9b
mov byte [esp + 0x1f0], 0x98
mov byte [esp + 0x1f1], 0x99
mov ecx, 0x32
mov byte [esp + ecx + 0x1c0], 0
add ecx, 1
cmp ecx, 0x37
jne 0x416d33
xor ebx, ebx
mov dword [esp + 0x34], eax
cmp ebx, 0x37
jae 0x416d84
mov dl, byte [esp + ebx + 0x1c0]
mov eax, ebx
shl eax, 1
and eax, 0x64
mov ecx, ebx
xor ecx, 0xb2
add ecx, eax
mov eax, dword [esp + 0x34]
xor cl, dl
add cl, 0x86
mov byte [esp + ebx + 0x1c0], cl
mov ecx, ebx
shl ecx, 1
and ecx, 2
xor ebx, 1
add ebx, ecx
jmp 0x416d49
lea ecx, [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040e980
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040e980
mov dword [esp], edi
call fcn.0040cf70
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
xor ebx, ebx
jmp 0x416db7
test ecx, ecx
je 0x416dd8
jmp 0x416dbd
mov eax, ecx
sub eax, 1
je 0x416f85
jmp 0x416dca
sub ecx, 2
je 0x4171f8
jmp 0x41747c
test byte [esp + 0x47], 1
jne 0x416de4
jmp 0x416f85
call fcn.00417910
lea edi, [esp + 0x338]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x338], 0x44
mov eax, dword [0x44c004]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.00440000
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x338]
lea edx, [esp + 0x2e4]
mov dword [esp], ebx
mov edi, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
setne al
test al, 1
mov edi, dword [esp + 0x30]
jne 0x416e89
jmp 0x416f80
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0xf8]
mov byte [esp + 0x16c], al
mov byte [esp + 0xfc], 0xef
mov byte [esp + 0xfd], 0xee
mov byte [esp + 0xfe], 0xed
mov byte [esp + 0xff], 0xec
mov eax, 4
mov byte [esp + eax + 0xfc], 0
add eax, 1
cmp eax, 6
jne 0x416eca
xor eax, eax
cmp eax, 6
jae 0x416efe
mov cl, byte [esp + eax + 0xfc]
mov dl, al
add dl, 0x58
xor dl, cl
add dl, 0x48
mov byte [esp + eax + 0xfc], dl
add eax, 1
jmp 0x416edc
mov ecx, dword [esp + 0xfc]
xor edi, edi
cmp edi, dword [0x44c010]
jb 0x416f11
jmp 0x416f7c
mov dword [esp + 0x2c], ebx
mov eax, dword [0x44c014]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x416f2b
jmp 0x416f68
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
jne 0x416f35
jmp 0x416f68
mov dword [esp + 0x294], ecx
mov ecx, dword [0x44c018]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xc], eax
call fcn.0043d120
mov ecx, dword [esp + 0x294]
test bl, 1
jne 0x416f76
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x416f07
mov ebx, dword [esp + 0x2c]
jmp 0x416f7c
mov edi, dword [esp + 0x30]
jmp 0x41747c
mov eax, dword [0x44c004]
mov dword [esp], eax
mov dword [esp + 4], 0xe117db1e
call fcn.00440000
test eax, eax
setne cl
jne 0x416fa5
jmp 0x416fa3
xor eax, eax
mov ecx, dword [esp + 0x3c]
xor edx, edx
lea edx, [0x421330]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call eax
sub esp, 0x18
cmp eax, 0
je 0x4171f3
mov dword [esp + 0x2cc], 0xffffffff
mov dword [esp + 0x2c8], 0xdc3cba00
mov cl, byte [esp + 0x158]
mov byte [esp + 0x164], cl
mov byte [esp + 0x15c], 0xef
mov byte [esp + 0x15d], 0xee
mov byte [esp + 0x15e], 0xed
mov byte [esp + 0x15f], 0xec
mov ecx, 4
mov byte [esp + ecx + 0x15c], 0
add ecx, 1
cmp ecx, 6
jne 0x41702f
xor ecx, ecx
cmp ecx, 6
jae 0x417063
mov dl, byte [esp + ecx + 0x15c]
mov dh, cl
add dh, 0x58
xor dh, dl
add dh, 0x48
mov byte [esp + ecx + 0x15c], dh
add ecx, 1
jmp 0x417041
mov dword [esp + 0x2c], ebx
mov edi, dword [esp + 0x15c]
xor ebx, ebx
cmp ebx, dword [0x44c010]
jb 0x41707d
jmp 0x417110
mov ecx, dword [0x44c014]
cmp dword [ecx + ebx*8], 0x4e66b5a3
sete dl
test dl, 1
jne 0x417094
jmp 0x417101
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x417101
mov dword [esp + 0x280], edi
mov edi, dword [0x44c018]
mov dword [esp + 0x284], edi
mov byte [esp + 0x44], dl
xor edx, edx
lea edi, [esp + 0x2c8]
mov edx, dword [esp + 0x284]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x280]
mov dword [esp + 0x80], eax
call fcn.0043d120
mov dl, byte [esp + 0x44]
mov eax, dword [esp + 0x80]
test dl, 1
je 0x417108
jmp 0x417110
add ebx, 1
jmp 0x417070
mov cl, byte [esp + 0xec]
mov byte [esp + 0x170], cl
mov byte [esp + 0xf0], 0xef
mov byte [esp + 0xf1], 0xee
mov byte [esp + 0xf2], 0xed
mov byte [esp + 0xf3], 0xec
mov ecx, 4
mov byte [esp + ecx + 0xf0], 0
add ecx, 1
cmp ecx, 6
jne 0x417143
xor ecx, ecx
cmp ecx, 6
jae 0x417177
mov dl, byte [esp + ecx + 0xf0]
mov dh, cl
add dh, 0x58
xor dh, dl
add dh, 0x48
mov byte [esp + ecx + 0xf0], dh
add ecx, 1
jmp 0x417155
mov edi, dword [esp + 0xf0]
xor ebx, ebx
cmp ebx, dword [0x44c010]
jb 0x41718a
jmp 0x4171eb
mov ecx, dword [0x44c014]
cmp dword [ecx + ebx*8], 0xb62b8d10
sete dl
test dl, 1
jne 0x4171a1
jmp 0x4171df
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
jne 0x4171ab
jmp 0x4171df
mov byte [esp + 0x42], dl
mov edx, dword [0x44c018]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x80], eax
call fcn.0043d120
mov dl, byte [esp + 0x42]
mov eax, dword [esp + 0x80]
test dl, 1
jne 0x4171e9
add ebx, 1
jmp 0x417180
jmp 0x4171eb
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
jmp 0x41747c
lea edi, [esp + 0x2f4]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2f4], 0x44
mov eax, dword [0x44c004]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.00440000
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2f4]
lea edx, [esp + 0x2d4]
mov dword [esp], 0
mov edi, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x417476
mov eax, dword [esp + 0x2d8]
mov dword [esp + 0x2ac], eax
mov al, byte [esp + 0xe0]
mov byte [esp + 0x174], al
mov byte [esp + 0xe4], 0xef
mov byte [esp + 0xe5], 0xee
mov byte [esp + 0xe6], 0xed
mov byte [esp + 0xe7], 0xec
mov eax, 4
mov byte [esp + eax + 0xe4], 0
add eax, 1
cmp eax, 6
jne 0x4172d3
xor eax, eax
cmp eax, 6
jae 0x417307
mov cl, byte [esp + eax + 0xe4]
mov dl, al
add dl, 0x58
xor dl, cl
add dl, 0x48
mov byte [esp + eax + 0xe4], dl
add eax, 1
jmp 0x4172e5
mov ecx, dword [esp + 0xe4]
xor edi, edi
mov dword [esp + 0x2c], ebx
cmp edi, dword [0x44c010]
jb 0x41731e
jmp 0x417385
mov eax, dword [0x44c014]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x417334
jmp 0x417371
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
jne 0x41733e
jmp 0x417371
mov dword [esp + 0x29c], ecx
mov ecx, dword [0x44c018]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0xc], eax
call fcn.0043d120
mov ecx, dword [esp + 0x29c]
test bl, 1
jne 0x41737f
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x417314
mov ebx, dword [esp + 0x2c]
jmp 0x417385
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0xd4]
mov byte [esp + 0x178], al
mov byte [esp + 0xd8], 0xef
mov byte [esp + 0xd9], 0xee
mov byte [esp + 0xda], 0xed
mov byte [esp + 0xdb], 0xec
mov eax, 4
mov byte [esp + eax + 0xd8], 0
add eax, 1
cmp eax, 6
jne 0x4173c6
xor eax, eax
cmp eax, 6
jae 0x4173fa
mov cl, byte [esp + eax + 0xd8]
mov dl, al
add dl, 0x58
xor dl, cl
add dl, 0x48
mov byte [esp + eax + 0xd8], dl
add eax, 1
jmp 0x4173d8
mov ecx, dword [esp + 0xd8]
xor edi, edi
cmp edi, dword [0x44c010]
jb 0x41740d
jmp 0x417474
mov eax, dword [0x44c014]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x417423
jmp 0x417460
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
jne 0x41742d
jmp 0x417460
mov dword [esp + 0x298], ecx
mov ecx, dword [0x44c018]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0xc], eax
call fcn.0043d120
mov ecx, dword [esp + 0x298]
test bl, 1
jne 0x41746e
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x417403
mov ebx, dword [esp + 0x2c]
jmp 0x417474
jmp 0x417476
mov edi, dword [esp + 0x30]
jmp 0x41747c
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00439840
cmp ebx, 0
je 0x417495
mov dword [esp], ebx
call fcn.0040cf70
mov eax, dword [esp + 0x34]
cmp eax, 0
je 0x4174a6
mov dword [esp], eax
call fcn.0040cf70
jmp 0x4174a8
jmp 0x4174aa
add edi, 1
jmp 0x4156fc
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret