Function at 0x40ebd0
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x750
mov esi, esp
mov ebx, dword [ebp + 8]
mov al, byte [esi + 0x1f4]
mov byte [esi + 0x1f8], al
mov byte [esi + 0x444], 0x63
mov byte [esi + 0x445], 0xc1
mov eax, 2
mov byte [esi + eax + 0x444], 0
add eax, 1
cmp eax, 5
jne 0x40ec03
xor eax, eax
cmp eax, 5
jae 0x40ec43
movzx edx, byte [esi + eax + 0x444]
mov ecx, eax
add ecx, 0xaef85430
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x10
mov byte [esi + eax + 0x444], cl
add eax, 1
jmp 0x40ec15
sub esp, 8
lea eax, [esi + 0x444]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004019a0
add esp, 8
mov dword [esi + 0xa0], eax
push eax
mov edi, esp
push eax
mov ebx, esp
mov dword [edi], 0x18024b45
mov dword [ebx], edi
mov dword [esi + 4], edi
mov eax, dword [edi]
mov ecx, eax
sub ecx, 0x80cbc815
je 0x4129b6
jmp 0x40ec84
mov ecx, eax
sub ecx, 0x8127d322
je 0x40fa26
jmp 0x40ec94
mov ecx, eax
sub ecx, 0x84b629ff
je 0x413133
jmp 0x40eca4
mov ecx, eax
sub ecx, 0x85276226
je 0x413051
jmp 0x40ecb4
mov ecx, eax
sub ecx, 0x8864a663
je 0x411fcd
jmp 0x40ecc4
mov ecx, eax
sub ecx, 0x8a217c87
je 0x413258
jmp 0x40ecd4
mov ecx, eax
sub ecx, 0x8d589b7e
je 0x411767
jmp 0x40ece4
mov ecx, eax
sub ecx, 0x93e11e1e
je 0x4118a2
jmp 0x40ecf4
mov ecx, eax
sub ecx, 0x95597c81
je 0x413188
jmp 0x40ed04
mov ecx, eax
sub ecx, 0x97276574
je 0x4129e3
jmp 0x40ed14
mov ecx, eax
sub ecx, 0x97d942da
je 0x4131d0
jmp 0x40ed24
mov ecx, eax
sub ecx, 0x999ee019
je 0x412388
jmp 0x40ed34
mov ecx, eax
sub ecx, 0x9a421329
je 0x4130e2
jmp 0x40ed44
mov ecx, eax
sub ecx, 0x9b21e015
je 0x411c93
jmp 0x40ed54
mov ecx, eax
sub ecx, 0x9bb0073d
je 0x41297e
jmp 0x40ed64
mov ecx, eax
sub ecx, 0x9cc66644
je 0x4123d4
jmp 0x40ed74
mov ecx, eax
sub ecx, 0x9dfeab80
je 0x4106f8
jmp 0x40ed84
mov ecx, eax
sub ecx, 0x9ebe5338
je 0x411228
jmp 0x40ed94
mov ecx, eax
sub ecx, 0xa28a4b09
je 0x4108a9
jmp 0x40eda4
mov ecx, eax
sub ecx, 0xa2cff15e
je 0x4128be
jmp 0x40edb4
mov ecx, eax
sub ecx, 0xa4488c35
je 0x41041e
jmp 0x40edc4
mov ecx, eax
sub ecx, 0xa457051c
je 0x41293e
jmp 0x40edd4
mov ecx, eax
sub ecx, 0xa4be9268
je 0x4109de
jmp 0x40ede4
mov ecx, eax
sub ecx, 0xa60ac8d7
je 0x40f91c
jmp 0x40edf4
mov ecx, eax
sub ecx, 0xa62f1c67
je 0x40f9d5
jmp 0x40ee04
mov ecx, eax
sub ecx, 0xa72a6186
je 0x4123b2
jmp 0x40ee14
mov ecx, eax
sub ecx, 0xa75c1637
je 0x4117c4
jmp 0x40ee24
mov ecx, eax
sub ecx, 0xa828ef6f
je 0x4129f0
jmp 0x40ee34
mov ecx, eax
sub ecx, 0xac3191aa
je 0x4132c9
jmp 0x40ee44
mov ecx, eax
sub ecx, 0xacd15681
je 0x41287a
jmp 0x40ee54
mov ecx, eax
sub ecx, 0xadf1b787
je 0x40fe90
jmp 0x40ee64
mov ecx, eax
sub ecx, 0xaf6437c6
je 0x411bb2
jmp 0x40ee74
mov ecx, eax
sub ecx, 0xb2c913c6
je 0x410705
jmp 0x40ee84
mov ecx, eax
sub ecx, 0xb440cc26
je 0x412e07
jmp 0x40ee94
mov ecx, eax
sub ecx, 0xb591f683
je 0x411e23
jmp 0x40eea4
mov ecx, eax
sub ecx, 0xb5e3c7dc
je 0x4122ea
jmp 0x40eeb4
mov ecx, eax
sub ecx, 0xb693f0e0
je 0x4114a1
jmp 0x40eec4
mov ecx, eax
sub ecx, 0xb8b9e1e7
je 0x4133af
jmp 0x40eed4
mov ecx, eax
sub ecx, 0xba58f3fd
je 0x41050f
jmp 0x40eee4
mov ecx, eax
sub ecx, 0xbebadecd
je 0x411289
jmp 0x40eef4
mov ecx, eax
sub ecx, 0xbf16dbe2
je 0x40f929
jmp 0x40ef04
mov ecx, eax
sub ecx, 0xbfdb7ad4
je 0x410e2d
jmp 0x40ef14
mov ecx, eax
sub ecx, 0xc36927fb
je 0x411b8e
jmp 0x40ef24
mov ecx, eax
sub ecx, 0xc3b3ca5f
je 0x412b1b
jmp 0x40ef34
mov ecx, eax
sub ecx, 0xc46cc3cb
je 0x4108b6
jmp 0x40ef44
mov ecx, eax
sub ecx, 0xc4b910fc
je 0x410610
jmp 0x40ef54
mov ecx, eax
sub ecx, 0xc64d357d
je 0x4117ef
jmp 0x40ef64
mov ecx, eax
sub ecx, 0xc67c0444
je 0x413123
jmp 0x40ef74
mov ecx, eax
sub ecx, 0xc6d38a0b
je 0x412268
jmp 0x40ef84
mov ecx, eax
sub ecx, 0xc7cbc998
je 0x41230c
jmp 0x40ef94
mov ecx, eax
sub ecx, 0xc8540897
je 0x412e2c
jmp 0x40efa4
mov ecx, eax
sub ecx, 0xcb7107a1
je 0x41289e
jmp 0x40efb4
mov ecx, eax
sub ecx, 0xccb63747
je 0x40f858
jmp 0x40efc4
mov ecx, eax
sub ecx, 0xccd92dd6
je 0x4103dd
jmp 0x40efd4
mov ecx, eax
sub ecx, 0xcf3961a8
je 0x4133dd
jmp 0x40efe4
mov ecx, eax
sub ecx, 0xd42cecce
je 0x412b0b
jmp 0x40eff4
mov ecx, eax
sub ecx, 0xd6617297
je 0x41165e
jmp 0x40f004
mov ecx, eax
sub ecx, 0xdab2f2bd
je 0x41054f
jmp 0x40f014
mov ecx, eax
sub ecx, 0xdee825bd
je 0x4107e9
jmp 0x40f024
mov ecx, eax
sub ecx, 0xe1619213
je 0x410570
jmp 0x40f034
mov ecx, eax
sub ecx, 0xe6c4a466
je 0x412121
jmp 0x40f044
mov ecx, eax
sub ecx, 0xe725b7d2
je 0x41068a
jmp 0x40f054
mov ecx, eax
sub ecx, 0xe8701900
je 0x4128df
jmp 0x40f064
mov ecx, eax
sub ecx, 0xe95ba0a5
je 0x4103cd
mov eax, dword [esi + 0xa4]
mov ecx, dword [esi + 0xa0]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401bc0
add esp, 8
mov dword [esi + 8], eax
mov al, byte [esi + 0x1f0]
mov byte [esi + 0x1fc], al
mov byte [esi + 0x43c], 0x48
mov byte [esi + 0x43d], 0xff
mov eax, 2
mov byte [esi + eax + 0x43c], 0
add eax, 1
cmp eax, 5
jne 0x40f898
xor eax, eax
cmp eax, 5
jae 0x40f8cc
mov cl, byte [esi + eax + 0x43c]
mov dl, al
add dl, 0x55
xor dl, cl
add dl, 0x57
mov byte [esi + eax + 0x43c], dl
add eax, 1
jmp 0x40f8aa
mov eax, dword [esi + 8]
lea ecx, [esi + 0x43c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401b50
add esp, 0xc
cmp eax, 0
setne cl
xor cl, 0xff
and cl, 1
or cl, 0
xor cl, 0
mov eax, 0xa60ac8d7
test cl, 1
jne 0x40f910
mov eax, 0xbf16dbe2
mov ecx, dword [ebx]
mov dword [ecx], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x6154333
jmp 0x413411
mov al, byte [esi + 0x1ec]
mov byte [esi + 0x200], al
mov byte [esi + 0x5c], 0x14
mov byte [esi + 0x5d], 0x99
mov eax, 2
mov byte [esi + eax + 0x5c], 0
add eax, 1
cmp eax, 4
jne 0x40f942
xor eax, eax
cmp eax, 4
jae 0x40f982
mov dl, byte [esi + eax + 0x5c]
mov edi, eax
add edi, 0x26
mov ecx, 0xd9
sub ecx, eax
and ecx, 0x9f
and edi, 0x60
or ecx, edi
xor cl, dl
xor cl, 0x9f
add cl, 0x42
mov byte [esi + eax + 0x5c], cl
add eax, 1
jmp 0x40f951
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x5c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401930
add esp, 8
fnstcw word [esi + 0x6a]
movzx eax, word [esi + 0x6a]
or eax, 0xc00
mov word [esi + 0x2ce], ax
fldcw word [esi + 0x2ce]
fistp dword [esi + 0x4bc]
fldcw word [esi + 0x6a]
mov eax, dword [esi + 0x4bc]
mov dword [esi + 0x3c], eax
mov eax, dword [ebx]
mov dword [eax], 0xa62f1c67
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, 0x8127d322
cmp dword [esi + 0x3c], 2
jl 0x40f9e5
mov eax, 0xfe89314
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x413411
mov eax, 0xec28d78c
cmp dword [esi + 0x3c], 1
jl 0x40fa36
mov eax, 0x5de51e84
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x1a633546
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x20]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x70555129
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x3c31a836
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x7a9e6f4f
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x20]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xe1619213
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x370]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4105a1
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0xb4], eax
mov eax, dword [esi + 0xb4]
mov ecx, dword [esi + 0x370]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
lea ecx, [esi + 0x6c0]
sub esp, 4
mov dword [esp], 1
call fcn.00409030
mov eax, dword [ebx]
mov dword [eax], 0xc4b910fc
mov dword [esi + 0x330], 0
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x330]
mov dword [esi + 0xb8], eax
mov eax, dword [ebx]
mov dword [eax], 0x33744005
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x6c78de8c
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0xfcc1837e
jmp 0x413411
mov eax, dword [esi + 0xbc]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x410736
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0xbc]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + 0xb4]
mov dword [esi + 0x460], eax
mov edx, dword [esi + 0xb0]
mov al, byte [esi + 0x19]
mov byte [esi + 0x13], al
mov edi, dword [esi + 0x4d4]
mov eax, dword [esi + 0x4d0]
sub esp, 0x1c
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov eax, dword [esi + 0x460]
mov dword [esp + 4], eax
lea eax, [esi + 0x6c0]
mov dword [esp], eax
movzx eax, byte [esi + 0x13]
and eax, 1
mov dword [esp + 0x18], eax
call fcn.00422c90
add esp, 0x1c
mov eax, dword [ebx]
mov dword [eax], 0xdee825bd
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0xc0]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x6ec9bfb7
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0xc46cc3cb
jmp 0x413411
lea ecx, [esi + 0x6c0]
call fcn.00409b20
lea ecx, [esi + 0x6c0]
call fcn.00409110
mov eax, dword [ebx]
mov dword [eax], 0x5f6b3c05
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, 0x7b77a151
test byte [esi + 0x1b], 1
jne 0x4109ee
mov eax, 0x1cd29c68
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x413411
mov al, byte [esi + 0x18c]
mov byte [esi + 0x254], al
mov byte [esi + 0x3dc], 7
mov byte [esi + 0x3dd], 0x61
mov eax, 2
mov byte [esi + eax + 0x3dc], 0
add eax, 1
cmp eax, 6
jne 0x410e4c
xor eax, eax
cmp eax, 6
jae 0x410e9e
movzx edx, byte [esi + eax + 0x3dc]
mov ecx, eax
add ecx, 0xc386ab68
xor ecx, edx
mov edi, ecx
add edi, 1
mov edx, ecx
xor edx, 0xffffffff
or edx, 0xf7
add edx, edi
or ecx, 0xf7
add edx, ecx
add dl, 1
mov byte [esi + eax + 0x3dc], dl
add eax, 1
jmp 0x410e5e
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3dc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018d0
add esp, 8
mov dword [esi + 0x324], eax
mov al, byte [esi + 0x188]
mov byte [esi + 0x258], al
mov byte [esi + 0x3d4], 0x14
mov byte [esi + 0x3d5], 0xbb
mov eax, 2
mov byte [esi + eax + 0x3d4], 0
add eax, 1
cmp eax, 6
jne 0x410ede
xor eax, eax
cmp eax, 6
jae 0x410f2b
mov dl, byte [esi + eax + 0x3d4]
mov edi, eax
add edi, 0x9f
mov ecx, 0x60
sub ecx, eax
and ecx, 0x7e
and edi, 0x81
or ecx, edi
xor cl, dl
xor cl, 0x81
mov dl, 0xe4
sub dl, cl
mov byte [esi + eax + 0x3d4], dl
add eax, 1
jmp 0x410ef0
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3d4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018d0
add esp, 8
mov dword [esi + 0x374], eax
mov al, byte [esi + 0x184]
mov byte [esi + 0x25c], al
mov byte [esi + 0x4c], 0x7d
mov byte [esi + 0x4d], 0xe1
mov eax, 2
mov byte [esi + eax + 0x4c], 0
add eax, 1
cmp eax, 4
jne 0x410f65
xor eax, eax
cmp eax, 4
jae 0x410fa2
movzx edx, byte [esi + eax + 0x4c]
mov ecx, eax
add ecx, 0xd8
mov edi, 0x27
sub edi, eax
and edi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
add cl, 0xc8
mov byte [esi + eax + 0x4c], cl
add eax, 1
jmp 0x410f74
mov eax, dword [esi + 8]
lea ecx, [esi + 0x4c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004019a0
add esp, 8
mov dword [esi + 0x378], eax
mov al, byte [esi + 0x180]
mov byte [esi + 0x260], al
mov byte [esi + 0x48], 0xa6
mov byte [esi + 0x49], 0x19
mov eax, 2
mov byte [esi + eax + 0x48], 0
add eax, 1
cmp eax, 4
jne 0x410fd9
xor eax, eax
cmp eax, 4
jae 0x411028
movzx ecx, byte [esi + eax + 0x48]
mov dword [esi + 0x46c], ecx
mov ecx, eax
add ecx, 0x3a
mov edi, 0xc5
sub edi, eax
mov edx, 0xc5
sub edx, eax
and edi, edx
mov edx, dword [esi + 0x46c]
or ecx, edx
xor edx, 0xffffffff
or edi, edx
and ecx, edi
add cl, 0xde
mov byte [esi + eax + 0x48], cl
add eax, 1
jmp 0x410fe8
mov eax, dword [esi + 8]
lea ecx, [esi + 0x48]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018d0
add esp, 8
mov dword [esi + 0x37c], eax
mov al, byte [esi + 0x17c]
mov byte [esi + 0x264], al
mov byte [esi + 0x44], 0xa4
mov byte [esi + 0x45], 0x41
mov eax, 2
mov byte [esi + eax + 0x44], 0
add eax, 1
cmp eax, 4
jne 0x41105f
xor eax, eax
cmp eax, 4
jae 0x4110a2
movzx edx, byte [esi + eax + 0x44]
mov edi, eax
shl edi, 1
and edi, 0x3fcb7720
mov ecx, eax
xor ecx, 0x9fe5bb90
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x30
mov byte [esi + eax + 0x44], cl
add eax, 1
jmp 0x41106e
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x44]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401930
add esp, 8
fnstcw word [esi + 0x64]
movzx eax, word [esi + 0x64]
or eax, 0xc00
mov word [esi + 0x2c8], ax
fldcw word [esi + 0x2c8]
fistp dword [esi + 0x4cc]
fldcw word [esi + 0x64]
mov eax, dword [esi + 0x4cc]
mov dword [esi + 0x4dc], eax
mov al, byte [esi + 0x178]
mov byte [esi + 0x268], al
mov byte [esi + 0x2f0], 0x6a
mov byte [esi + 0x2f1], 0x5a
mov byte [esi + 0x2f2], 0xc6
mov eax, 3
mov byte [esi + eax + 0x2f0], 0
add eax, 1
cmp eax, 8
jne 0x41110e
xor eax, eax
cmp eax, 8
jae 0x411142
mov cl, byte [esi + eax + 0x2f0]
mov dl, al
add dl, 0xb1
xor dl, cl
add dl, 0x8b
mov byte [esi + eax + 0x2f0], dl
add eax, 1
jmp 0x411120
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x2f0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401930
add esp, 8
fnstcw word [esi + 0x62]
movzx eax, word [esi + 0x62]
or eax, 0xc00
mov word [esi + 0x2c6], ax
fldcw word [esi + 0x2c6]
fistp dword [esi + 0x4c8]
fldcw word [esi + 0x62]
mov eax, dword [esi + 0x4c8]
mov dword [esi + 0x4e0], eax
sub esp, 4
mov eax, dword [esi + 0x324]
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov edi, eax
and edi, 1
or eax, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4111c1
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0xc4]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x324]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
mov eax, dword [esi + 0xc4]
lea ecx, [esi + 0x508]
sub esp, 4
mov dword [esp], eax
call fcn.00418210
mov eax, dword [ebx]
mov dword [eax], 0x9ebe5338
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0xc4]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xe55c64b
jmp 0x413411
mov dword [esi + 0x174], 0
mov eax, dword [esi + 0x508]
mov dword [esi + 0x4ac], eax
mov al, byte [esi + 0x26c]
mov byte [esi + 0x2c4], al
mov byte [esi + 0x270], 0x4d
mov byte [esi + 0x271], 0x4a
mov byte [esi + 0x272], 0x4b
mov byte [esi + 0x273], 0x48
mov eax, 4
mov byte [esi + eax + 0x270], 0
add eax, 1
cmp eax, 5
jne 0x4112cc
xor eax, eax
cmp eax, 5
jae 0x411334
mov edx, eax
mov dword [esi + 0x48c], edx
movzx ecx, byte [esi + edx + 0x270]
add edx, 0x73
and edx, ecx
mov eax, edx
and eax, 2
xor eax, 2
mov edi, edx
and edi, 0xfd
imul edi, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
mov eax, dword [esi + 0x48c]
add ecx, eax
add ecx, 0x73
sub ecx, edx
add cl, 0xc1
mov byte [esi + eax + 0x270], cl
add eax, 1
jmp 0x4112de
mov eax, dword [esi + 0x270]
mov dword [esi + 0x9c], eax
mov dword [esi + 0x70], 0
mov ecx, 2
mov edx, dword [esi + 0x70]
cmp edx, dword [0x44dee4]
jb 0x41135c
jmp 0x4113f2
mov edi, dword [0x44dee8]
mov ecx, dword [esi + 0x70]
cmp dword [edi + ecx*8], 0xfc36c0a1
sete dl
xor ecx, ecx
mov byte [esi + 0x17], dl
test dl, 1
jne 0x41137b
jmp 0x4113e1
mov ecx, dword [esi + 0x70]
mov edx, dword [edi + ecx*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0x9c]
je 0x4113e1
mov eax, dword [0x44deec]
xor ecx, ecx
lea ecx, [esi + 0x174]
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x4ac]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
call fcn.0043e980
add esp, 0x20
mov ecx, 1
test byte [esi + 0x17], 1
je 0x4113e9
jmp 0x4113f2
add dword [esi + 0x70], 1
jmp 0x411347
cmp ecx, 2
je 0x4113fd
mov dword [esi + 0x9c], eax
mov al, byte [esi + 0x168]
mov byte [esi + 0x278], al
mov byte [esi + 0x16c], 0x24
mov byte [esi + 0x16d], 0x39
mov byte [esi + 0x16e], 0x36
mov byte [esi + 0x16f], 0x77
mov eax, 4
mov byte [esi + eax + 0x16c], 0
add eax, 1
cmp eax, 6
jne 0x41142a
xor edi, edi
cmp edi, 6
jae 0x41147d
mov dl, byte [esi + edi + 0x16c]
movzx eax, dl
mov dword [esi + 0x450], eax
mov eax, edi
add eax, 0xd9020df6
mov ecx, eax
and ecx, dword [esi + 0x450]
shl ecx, 1
sub eax, ecx
add al, dl
add al, 0x32
mov byte [esi + edi + 0x16c], al
mov eax, edi
shl eax, 1
and eax, 2
xor edi, 1
add edi, eax
jmp 0x41143c
mov ecx, dword [esi + 0x16c]
mov eax, 0xb693f0e0
cmp dword [esi + 0x9c], ecx
je 0x411495
mov eax, 0xf4b52106
mov ecx, dword [ebx]
mov dword [ecx], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x174]
sub eax, 0xfffffffe
sub esp, 4
mov dword [esp], eax
call fcn.0043bfb0
add esp, 4
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x174]
sub eax, 0xfffffffe
mov dword [esi + 0x4b4], eax
mov eax, dword [esi + 0x508]
mov dword [esi + 0x4b0], eax
mov eax, dword [esi + 0x78]
mov dword [esi + 0x4a8], eax
mov al, byte [esi + 0x27c]
mov byte [esi + 0x2c0], al
mov byte [esi + 0x280], 0x4d
mov byte [esi + 0x281], 0x4a
mov byte [esi + 0x282], 0x4b
mov byte [esi + 0x283], 0x48
mov eax, 4
mov byte [esi + eax + 0x280], 0
add eax, 1
cmp eax, 5
jne 0x41150c
xor eax, eax
cmp eax, 5
jae 0x411574
mov edx, eax
mov dword [esi + 0x488], edx
movzx ecx, byte [esi + edx + 0x280]
add edx, 0x73
and edx, ecx
mov eax, edx
and eax, 2
xor eax, 2
mov edi, edx
and edi, 0xfd
imul edi, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
mov eax, dword [esi + 0x488]
add ecx, eax
add ecx, 0x73
sub ecx, edx
add cl, 0xc1
mov byte [esi + eax + 0x280], cl
add eax, 1
jmp 0x41151e
mov eax, dword [esi + 0x280]
mov dword [esi + 0x98], eax
mov dword [esi + 0x6c], 0
mov ecx, 2
mov edx, dword [esi + 0x6c]
cmp edx, dword [0x44dee4]
jb 0x41159c
jmp 0x411634
mov edi, dword [0x44dee8]
mov ecx, dword [esi + 0x6c]
cmp dword [edi + ecx*8], 0xfc36c0a1
sete dl
xor ecx, ecx
mov byte [esi + 0x16], dl
test dl, 1
jne 0x4115bb
jmp 0x411623
mov ecx, dword [esi + 0x6c]
mov edx, dword [edi + ecx*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0x98]
je 0x411623
mov eax, dword [0x44deec]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x4b0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esi + 0x4a8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x4b4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.0043e980
add esp, 0x20
mov ecx, 1
test byte [esi + 0x16], 1
je 0x41162b
jmp 0x411634
add dword [esi + 0x6c], 1
jmp 0x411587
cmp ecx, 2
je 0x41163f
mov dword [esi + 0x98], eax
mov eax, 0xd6617297
cmp dword [esi + 0x98], 0
jge 0x411652
mov eax, 0x24b6fab2
mov ecx, dword [ebx]
mov dword [ecx], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x374]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov dword [esi + 0x380], eax
mov eax, dword [esi + 0x380]
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor edi, edi
sub edi, ecx
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4116a1
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0xc8]
mov ecx, dword [esi + 0x374]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
mov eax, dword [esi + 0x78]
add eax, 4
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x78]
movzx ecx, word [ecx]
shr ecx, 1
add ecx, 0x82697a1d
sub ecx, 1
sub ecx, 0x82697a1d
shl ecx, 1
add eax, ecx
mov dword [esi + 0x384], eax
mov eax, dword [ebx]
mov dword [eax], 0x6b53973
mov eax, dword [esi + 0x384]
mov dword [esi + 0x334], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x80]
movzx ecx, word [eax]
mov eax, 0xf0d7ef2
cmp ecx, 0x5c
je 0x41177f
mov eax, 0xa75c1637
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x413411
mov eax, dword [esi + 0x80]
add eax, 0xfffffffe
mov dword [esi + 0x4e4], eax
mov eax, dword [ebx]
mov dword [eax], 0x6b53973
mov eax, dword [esi + 0x4e4]
mov dword [esi + 0x334], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov edi, dword [esi + 0x338]
mov eax, dword [esi + 0x7c]
mov eax, dword [eax]
mov ecx, edi
xor ecx, eax
xor eax, 0xffffffff
and edi, eax
shl edi, 1
sub edi, ecx
sar edi, 1
mov ecx, dword [esi + 0x380]
mov eax, edi
add eax, 0x24dae952
add eax, ecx
sub eax, 0x24dae952
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 0x41183f
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x84]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00418240
add esp, 0xc
mov ecx, dword [esi + 0xc8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409ff0
add esp, 8
mov dword [esi + 0x4e8], eax
mov eax, dword [ebx]
mov dword [eax], 0x93e11e1e
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0xc8]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xf842a6d7
jmp 0x413411
mov eax, dword [esi + 0xdc]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xaf6437c6
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x7264076c
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0xf4b52106
jmp 0x413411
mov eax, dword [esi + 0xe0]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
add eax, 1
mov dword [esi + 0x388], eax
mov eax, dword [esi + 0x388]
mov ecx, 2
mul ecx
seto cl
and cl, 1
mov byte [esi + 0x1e], cl
mov dword [esi + 0x4f0], eax
mov eax, dword [ebx]
mov dword [eax], 0x48fd014a
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0xf0]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov edi, eax
mov eax, edi
and eax, 1
or edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412005
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0x38c], eax
mov eax, dword [esi + 0x38c]
mov ecx, dword [esi + 0xf0]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
mov eax, dword [ebx]
mov dword [eax], 0x72f3319c
mov eax, dword [esi + 0x38c]
mov dword [esi + 0x340], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0xf8]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412152
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0x390], eax
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0xf8]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
mov eax, dword [ebx]
mov dword [eax], 0x35fa3806
mov eax, dword [esi + 0x390]
mov dword [esi + 0x344], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x100]
sub esp, 4
mov dword [esp], eax
call fcn.00401bb0
add esp, 4
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x24]
mov ecx, 0xc
mul ecx
seto cl
add eax, 4
setb dl
and cl, cl
xor cl, 0xff
mov ch, dl
xor ch, 0xff
xor dl, 0xff
or ch, dl
and cl, ch
xor cl, 0xff
mov edx, 0xffffffff
test cl, 1
jne 0x4122b2
mov edx, eax
sub esp, 4
mov dword [esp], edx
call fcn.00408580
add esp, 4
mov ecx, dword [esi + 0x24]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0x88], eax
mov eax, 0xf122c504
cmp dword [esi + 0x24], 0
je 0x4122de
mov eax, 0xb5e3c7dc
mov ecx, dword [ebx]
mov dword [ecx], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x88]
imul ecx, dword [esi + 0x24], 0xc
add eax, ecx
mov dword [esi + 0x4f4], eax
mov eax, dword [ebx]
mov dword [eax], 0xc7cbc998
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0xfff6ae8b
mov eax, dword [esi + 0x88]
mov dword [esi + 0x348], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x34c]
mov dword [esi + 0x8c], eax
mov ecx, dword [esi + 0x8c]
mov eax, 0x9cc66644
cmp ecx, dword [esi + 0x24]
jb 0x4123a9
mov eax, 0xa72a6186
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0xee847e9d
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x354], eax
mov dword [esi + 0x350], ecx
jmp 0x413411
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x100]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401bc0
add esp, 8
mov dword [esi + 0x74], eax
mov al, byte [esi + 0x150]
mov byte [esi + 0x29c], al
mov byte [esi + 0x2e8], 5
mov byte [esi + 0x2e9], 0xb
mov byte [esi + 0x2ea], 0x96
mov eax, 3
mov byte [esi + eax + 0x2e8], 0
add eax, 1
cmp eax, 7
jne 0x41241b
xor eax, eax
cmp eax, 7
jae 0x412470
movzx edi, byte [esi + eax + 0x2e8]
mov ecx, 0x19
sub ecx, eax
or ecx, edi
xor ecx, 0xffffffff
mov edx, 0x19
sub edx, eax
and edx, edi
or edx, ecx
add dl, 0x82
mov byte [esi + eax + 0x2e8], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 0xdce65381
add eax, ecx
add eax, 0x2319ac80
jmp 0x41242d
lea eax, [esi + 0x2e8]
sub esp, 8
mov ecx, dword [esi + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018d0
add esp, 8
mov dword [esi + 0x4b8], eax
mov al, byte [esi + 0x14c]
mov byte [esi + 0x2a0], al
mov byte [esi + 0x2e0], 0xeb
mov byte [esi + 0x2e1], 0xfd
mov byte [esi + 0x2e2], 6
mov eax, 3
mov byte [esi + eax + 0x2e0], 0
add eax, 1
cmp eax, 6
jne 0x4124b7
xor eax, eax
cmp eax, 6
jae 0x412564
movzx ecx, byte [esi + eax + 0x2e0]
mov dword [esi + 0x484], ecx
mov ecx, eax
xor ecx, 0x785103be
mov edx, eax
or edx, 0x87aefc41
and edx, ecx
mov dword [esi + 0x31c], eax
mov eax, dword [esi + 0x31c]
or eax, 0x87aefc41
mov edi, eax
and edi, ecx
or eax, edx
add eax, edi
mov edx, eax
xor edx, 0xffffffff
mov edi, dword [esi + 0x484]
or edx, edi
mov ecx, edi
shl ecx, 1
xor ecx, 0xffffffff
add ecx, edi
mov edi, eax
xor edi, 0xffffffff
shl edi, 1
add edi, eax
mov eax, 0xfffffffe
sub eax, edi
or ecx, eax
and ecx, edx
mov eax, 0x599512b9
sub eax, ecx
mov edx, eax
shl edx, 1
and edx, 2
and eax, 0xfe
and ecx, 1
or ecx, eax
mov eax, dword [esi + 0x31c]
add ecx, edx
mov byte [esi + eax + 0x2e0], cl
add eax, 1
jmp 0x4124c9
lea eax, [esi + 0x2e0]
sub esp, 8
mov ecx, dword [esi + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018d0
add esp, 8
mov dword [esi + 0x4a4], eax
mov al, byte [esi + 0x140]
mov byte [esi + 0x2a4], al
mov byte [esi + 0x144], 0x1c
mov byte [esi + 0x145], 0xe5
mov byte [esi + 0x146], 0xd8
mov byte [esi + 0x147], 0xb7
mov eax, 4
mov byte [esi + eax + 0x144], 0
add eax, 1
cmp eax, 6
jne 0x4125b2
xor eax, eax
cmp eax, 6
jae 0x4125ef
mov cl, byte [esi + eax + 0x144]
mov dl, al
add dl, 0x9e
xor dl, cl
add dl, 0xea
mov byte [esi + eax + 0x144], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4125c4
lea eax, [esi + 0x144]
sub esp, 8
mov ecx, dword [esi + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401a00
add esp, 8
cmp eax, 0
setg byte [esi + 0x18]
mov al, byte [esi + 0x134]
mov byte [esi + 0x2a8], al
mov byte [esi + 0x138], 0xa1
mov byte [esi + 0x139], 0x90
mov byte [esi + 0x13a], 0xa7
mov byte [esi + 0x13b], 0x39
mov eax, 4
mov byte [esi + eax + 0x138], 0
add eax, 1
cmp eax, 5
jne 0x41263e
xor eax, eax
cmp eax, 5
jae 0x412681
mov dl, byte [esi + eax + 0x138]
mov edi, eax
shl edi, 1
and edi, 0x96
mov ecx, eax
xor ecx, 0xcb
add ecx, edi
xor cl, dl
add cl, 9
mov byte [esi + eax + 0x138], cl
add eax, 1
jmp 0x412650
lea eax, [esi + 0x138]
sub esp, 8
mov ecx, dword [esi + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401a00
add esp, 8
xor edx, edx
cmp eax, 0
setg dl
mov eax, dword [esi + 0x8c]
imul ecx, eax, 0xc
add ecx, dword [esi + 0x88]
sub esp, 0x10
mov eax, dword [esi + 0x4b8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x4a4]
mov dword [esp], eax
and edx, 1
mov dword [esp + 0xc], edx
xor eax, eax
mov dl, byte [esi + 0x18]
mov al, dl
and eax, 1
mov dword [esp + 8], eax
call fcn.00418330
mov eax, dword [esi + 0x8c]
add eax, 1
mov dword [esi + 0x4f8], eax
mov eax, dword [ebx]
mov dword [eax], 0x999ee019
mov eax, dword [esi + 0x4f8]
mov dword [esi + 0x34c], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0xec]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xcb7107a1
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x7c05d0ea
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0xe8]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xe8701900
jmp 0x413411
cmp dword [esi + 0xf4], 0
sete al
and al, 1
mov byte [esi + 0x1f], al
mov eax, dword [ebx]
mov dword [eax], 0x4b5df297
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, 0x9bb0073d
cmp dword [esi + 0xfc], 0
je 0x412951
mov eax, 0x293bbfa8
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x4774c84b
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x562a397a
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x1a633546
jmp 0x413411
mov al, byte [esi + 0x130]
mov byte [esi + 0x2ac], al
mov byte [esi + 0x3b4], 0xb4
mov byte [esi + 0x3b5], 0x2b
mov eax, 2
mov byte [esi + eax + 0x3b4], 0
add eax, 1
cmp eax, 8
jne 0x412a0f
xor eax, eax
cmp eax, 8
jae 0x412a43
mov cl, byte [esi + eax + 0x3b4]
mov dl, al
add dl, 0x37
xor dl, cl
add dl, 0xed
mov byte [esi + eax + 0x3b4], dl
add eax, 1
jmp 0x412a21
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3b4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018d0
add esp, 8
mov dword [esi + 0x108], eax
mov al, byte [esi + 0x12c]
mov byte [esi + 0x2b0], al
mov byte [esi + 0x3ac], 0xaa
mov byte [esi + 0x3ad], 0x21
mov eax, 2
mov byte [esi + eax + 0x3ac], 0
add eax, 1
cmp eax, 6
jne 0x412a83
xor eax, eax
cmp eax, 6
jae 0x412ab7
mov cl, byte [esi + eax + 0x3ac]
mov dl, al
add dl, 8
xor dl, cl
add dl, 0xd8
mov byte [esi + eax + 0x3ac], dl
add eax, 1
jmp 0x412a95
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x3ac]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004018d0
add esp, 8
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x108]
test eax, eax
sete cl
mov eax, dword [esi + 0x10c]
test eax, eax
sete al
or cl, al
mov eax, 0xd42cecce
test cl, 1
jne 0x412aff
mov eax, 0xc3b3ca5f
mov ecx, dword [ebx]
mov dword [ecx], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x97d942da
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x108]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov edi, eax
mov eax, edi
and eax, 1
shl eax, 1
xor edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412b55
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x110]
mov ecx, dword [esi + 0x108]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
mov eax, dword [esi + 0x10c]
sub esp, 4
mov dword [esp], eax
call fcn.00418190
add esp, 4
mov edi, eax
add edi, 0x36804904
add edi, 1
sub edi, 0x36804904
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412bd2
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408580
add esp, 4
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0x114]
mov ecx, dword [esi + 0x10c]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040aaa0
add esp, 0x10
mov al, byte [esi + 0x128]
mov byte [esi + 0x2b4], al
mov byte [esi + 0x2d8], 0x5f
mov byte [esi + 0x2d9], 0x43
mov byte [esi + 0x2da], 0xca
mov eax, 3
mov byte [esi + eax + 0x2d8], 0
add eax, 1
cmp eax, 5
jne 0x412c38
xor eax, eax
cmp eax, 5
jae 0x412c86
movzx edx, byte [esi + eax + 0x2d8]
mov ecx, eax
add ecx, 0x47c36e53
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xc0
mov edi, ecx
xor edi, 0x60
add edi, edx
and ecx, 1
or edi, 1
add ecx, edi
mov byte [esi + eax + 0x2d8], cl
add eax, 1
jmp 0x412c4a
lea eax, [esi + 0x2d8]
sub esp, 8
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004019a0
add esp, 8
mov dword [esi + 0x118], eax
mov eax, 0x3b21e971
cmp dword [esi + 0x118], 0
jne 0x412cba
mov eax, 0x319c4fd2
mov ecx, dword [ebx]
mov dword [ecx], eax
mov dword [esi + 0x368], 0
mov dword [esi + 0x364], 0
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x319c4fd2
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x368], ecx
mov dword [esi + 0x364], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x118]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401bc0
add esp, 8
mov dword [esi + 0x320], eax
mov al, byte [esi + 0x124]
mov byte [esi + 0x2b8], al
mov byte [esi + 0x34], 0xeb
mov byte [esi + 0x35], 0xd1
mov byte [esi + 0x36], 0x46
mov eax, 3
mov byte [esi + eax + 0x34], 0
add eax, 1
cmp eax, 4
jne 0x412e6d
xor eax, eax
cmp eax, 4
jae 0x412eaa
movzx edi, byte [esi + eax + 0x34]
mov edx, eax
add edx, 0xf1
mov ecx, 0xe
sub ecx, eax
and ecx, edi
xor edi, 0xffffffff
and edx, edi
or ecx, edx
add cl, 0x4b
mov byte [esi + eax + 0x34], cl
add eax, 1
jmp 0x412e7c
lea eax, [esi + 0x34]
sub esp, 8
mov ecx, dword [esi + 0x320]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018d0
add esp, 8
mov dword [esi + 0x4a0], eax
mov al, byte [esi + 0x120]
mov byte [esi + 0x2bc], al
mov byte [esi + 0x2d0], 0x6b
mov byte [esi + 0x2d1], 0x75
mov byte [esi + 0x2d2], 0xce
mov eax, 3
mov byte [esi + eax + 0x2d0], 0
add eax, 1
cmp eax, 7
jne 0x412ef1
xor edx, edx
cmp edx, 7
jae 0x412f5a
mov al, byte [esi + edx + 0x2d0]
mov byte [esi + 0x14], al
movzx eax, al
mov dword [esi + 0x47c], eax
mov ecx, edx
and ecx, 0x525fbbad
mov eax, edx
and eax, 0x525fbbad
xor eax, 0xffffffff
mov edi, edx
add edi, 0x525fbbae
add edi, eax
add ecx, edi
mov eax, ecx
and eax, dword [esi + 0x47c]
shl eax, 1
add eax, 0x6e
sub ecx, eax
add cl, byte [esi + 0x14]
add cl, 0xd
mov byte [esi + edx + 0x2d0], cl
add edx, 1
jmp 0x412f03
lea eax, [esi + 0x2d0]
sub esp, 8
mov ecx, dword [esi + 0x320]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018d0
add esp, 8
mov ecx, dword [esi + 0x94]
shl ecx, 3
add ecx, dword [esi + 0x90]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0x4a0]
mov dword [esp + 4], eax
call fcn.004184f0
mov eax, dword [esi + 0x94]
add eax, 1
mov dword [esi + 0x500], eax
mov eax, dword [ebx]
mov dword [eax], 0xe56e5bb
mov eax, dword [esi + 0x500]
mov dword [esi + 0x360], eax
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x30]
add eax, 0xfffffffc
mov dword [esi + 0x3a4], eax
mov eax, dword [esi + 0x3a4]
mov eax, dword [eax]
shl eax, 3
add eax, dword [esi + 0x30]
mov dword [esi + 0x3a8], eax
mov ecx, dword [esi + 0x3a8]
mov eax, 0x9a421329
cmp dword [esi + 0x30], ecx
je 0x413086
mov eax, 0x4979ddc7
mov ecx, dword [ebx]
mov dword [ecx], eax
mov eax, dword [esi + 0x3a8]
mov dword [esi + 0x36c], eax
jmp 0x413411
mov eax, dword [esi + 0x3a4]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x65b22d0
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x84b629ff
mov edi, dword [esi + 4]
jmp 0x413411
mov eax, dword [esi + 0x110]
sub esp, 4
mov dword [esp], eax
call fcn.00408590
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x2466e5f6
jmp 0x413411
lea ecx, [esi + 0x5b0]
call fcn.00409110
mov eax, dword [ebx]
mov dword [eax], 0xf254f38
jmp 0x413411
mov eax, dword [ebx]
mov dword [eax], 0x39c523be
jmp 0x413411
mov cl, 0x97
pushfd
push ebp
fild qword [ebx - 0x5fde81d]
out 0xd1, eax
mov eax, dword [ebx]
mov dword [eax], 0x7a9e6f4f
jmp 0x413411
xor eax, dword [ecx + 0x761b3ea9]
outsd dx, dword [esi]
dec ecx
adc al, 0xae
xor cl, byte [edx - 0x7977efba]
inc eax
add al, byte [eax]
add dh, al
inc esi
push eax
xor eax, esi
inc esi
push ecx
xchg dword [eax + 2], edi
mov byte [esi + eax + 0x50], 0
add eax, 1
cmp eax, 6
jne 0x4132eb
xor eax, eax
cmp eax, 6
jae 0x413327
mov cl, byte [esi + eax + 0x50]
mov dl, al
add dl, 0x21
xor dl, cl
add dl, 0x5b
mov byte [esi + eax + 0x50], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
xor eax, 1
add eax, edx
jmp 0x4132fa
mov eax, dword [esi + 8]
lea ecx, [esi + 0x50]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
call fcn.00401b50
add esp, 0xc
mov eax, dword [ebx]
mov dword [eax], 0xf268e623
mov edi, dword [esi + 4]
jmp 0x413411
fild qword [ebp + 0x59]
add al, byte cs:[edi]
daa
add dword [ebx + 0x7a00c703], ecx
cmp dword [edx], ebp
push esi
mov edi, dword [esi + 4]
jmp 0x413411
clc
pushfd
in eax, dx
and dword [esi + ebp*4], edx
mov eax, dword [0xc7038bb8]
add byte [eax - 0x70], bh
leave
ljmp 0x971f
jmp 0x40ec72