Function at 0x40ef00
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, 0x4d8
mov esi, esp
mov dword [esi + 0x398], 0xa805facd
lea eax, [esi + 0x398]
mov dword [esi], eax
mov eax, dword [esi + 0x398]
mov ecx, eax
sub ecx, 0x80e0d662
je 0x412ce2
jmp 0x40ef39
mov ecx, eax
sub ecx, 0x824c67fe
je 0x410f76
jmp 0x40ef49
mov ecx, eax
sub ecx, 0x82787ad9
je 0x410b05
jmp 0x40ef59
mov ecx, eax
sub ecx, 0x864378fd
je 0x41196d
jmp 0x40ef69
mov ecx, eax
sub ecx, 0x87a68a34
je 0x412b7c
jmp 0x40ef79
mov ecx, eax
sub ecx, 0x8969e7f3
je 0x411127
jmp 0x40ef89
mov ecx, eax
sub ecx, 0x8980c436
je 0x4120e3
jmp 0x40ef99
mov ecx, eax
sub ecx, 0x8b53bfb6
je 0x41320b
jmp 0x40efa9
mov ecx, eax
sub ecx, 0x8c2b28a3
je 0x410acd
jmp 0x40efb9
mov ecx, eax
sub ecx, 0x8d620335
je 0x410dbe
jmp 0x40efc9
mov ecx, eax
sub ecx, 0x8e6dc75b
je 0x412cd5
jmp 0x40efd9
mov ecx, eax
sub ecx, 0x8e9202fc
je 0x40fa48
jmp 0x40efe9
mov ecx, eax
sub ecx, 0x90f99330
je 0x413181
jmp 0x40eff9
mov ecx, eax
sub ecx, 0x91690542
je 0x412827
jmp 0x40f009
mov ecx, eax
sub ecx, 0x929bc755
je 0x412c63
jmp 0x40f019
mov ecx, eax
sub ecx, 0x937df1ad
je 0x41177b
jmp 0x40f029
mov ecx, eax
sub ecx, 0x943d4aa4
je 0x412098
jmp 0x40f039
mov ecx, eax
sub ecx, 0x948dcc88
je 0x410e09
jmp 0x40f049
mov ecx, eax
sub ecx, 0x94d72893
je 0x412d8e
jmp 0x40f059
mov ecx, eax
sub ecx, 0x96181dba
je 0x41253e
jmp 0x40f069
mov ecx, eax
sub ecx, 0x96ead5a3
je 0x41045d
jmp 0x40f079
mov ecx, eax
sub ecx, 0x98879471
je 0x411da3
jmp 0x40f089
mov ecx, eax
sub ecx, 0x9b1e4fb0
je 0x4100df
jmp 0x40f099
mov ecx, eax
sub ecx, 0x9bef584e
je 0x411dc4
jmp 0x40f0a9
mov ecx, eax
sub ecx, 0x9c26fa28
je 0x411e9f
jmp 0x40f0b9
mov ecx, eax
sub ecx, 0x9d6b7844
je 0x410aa6
jmp 0x40f0c9
mov ecx, eax
sub ecx, 0x9e110b19
je 0x412d72
jmp 0x40f0d9
mov ecx, eax
sub ecx, 0x9e5f92b7
je 0x412d51
jmp 0x40f0e9
mov ecx, eax
sub ecx, 0x9f78d6aa
je 0x412014
jmp 0x40f0f9
mov ecx, eax
sub ecx, 0x9ffc77d9
je 0x40fe6f
jmp 0x40f109
mov ecx, eax
sub ecx, 0xa0e5b673
je 0x41206a
jmp 0x40f119
mov ecx, eax
sub ecx, 0xa65344a2
je 0x4109fe
jmp 0x40f129
mov ecx, eax
sub ecx, 0xa7af8fd5
je 0x41326e
jmp 0x40f139
mov ecx, eax
sub ecx, 0xa805facd
je 0x40fa3b
jmp 0x40f149
mov ecx, eax
sub ecx, 0xa8eaaa7d
je 0x41127c
jmp 0x40f159
mov ecx, eax
sub ecx, 0xa9eec100
je 0x410e26
jmp 0x40f169
mov ecx, eax
sub ecx, 0xab2898ed
je 0x4109e0
jmp 0x40f179
mov ecx, eax
sub ecx, 0xac69b83a
je 0x412f4d
jmp 0x40f189
mov ecx, eax
sub ecx, 0xada8c0b8
je 0x410dec
jmp 0x40f199
mov ecx, eax
sub ecx, 0xadccb214
je 0x4100f8
jmp 0x40f1a9
mov ecx, eax
sub ecx, 0xb174eaef
je 0x410515
jmp 0x40f1b9
mov ecx, eax
sub ecx, 0xb6750631
je 0x411e64
jmp 0x40f1c9
mov ecx, eax
sub ecx, 0xb6dab398
je 0x411bf8
jmp 0x40f1d9
mov ecx, eax
sub ecx, 0xb760dd2d
je 0x4134f2
jmp 0x40f1e9
mov ecx, eax
sub ecx, 0xb87b5a92
je 0x411952
jmp 0x40f1f9
mov ecx, eax
sub ecx, 0xbc5cdd2f
je 0x4111c2
jmp 0x40f209
mov ecx, eax
sub ecx, 0xbd08cd41
je 0x410094
jmp 0x40f219
mov ecx, eax
sub ecx, 0xc04c2e9a
je 0x411f04
jmp 0x40f229
mov ecx, eax
sub ecx, 0xc17b76a4
je 0x41046a
jmp 0x40f239
mov ecx, eax
sub ecx, 0xc19207c2
je 0x4111db
jmp 0x40f249
mov ecx, eax
sub ecx, 0xc2010853
je 0x41366b
jmp 0x40f259
mov ecx, eax
sub ecx, 0xc4eaa44c
je 0x411eac
jmp 0x40f269
mov ecx, eax
sub ecx, 0xc5009b90
je 0x412e1d
jmp 0x40f279
mov ecx, eax
sub ecx, 0xc609665c
je 0x41278e
jmp 0x40f289
mov ecx, eax
sub ecx, 0xc6a97aef
je 0x410ab3
jmp 0x40f299
mov ecx, eax
sub ecx, 0xc6e3ab68
je 0x410a0b
jmp 0x40f2a9
mov ecx, eax
sub ecx, 0xc6f90241
je 0x411d03
jmp 0x40f2b9
mov ecx, eax
sub ecx, 0xca0c6e79
je 0x413114
jmp 0x40f2c9
mov ecx, eax
sub ecx, 0xcaaff8d6
je 0x411bbd
jmp 0x40f2d9
mov ecx, eax
sub ecx, 0xccad855e
je 0x412cef
jmp 0x40f2e9
mov ecx, eax
sub ecx, 0xcdf510bf
je 0x4135e0
jmp 0x40f2f9
mov ecx, eax
sub ecx, 0xce2c186d
je 0x41356e
jmp 0x40f309
mov ecx, eax
sub ecx, 0xcf7017fe
je 0x4136a3
jmp 0x40f319
mov ecx, eax
sub ecx, 0xcf9a9919
je 0x410ecc
jmp 0x40f329
mov ecx, eax
sub ecx, 0xcfa2b9f2
je 0x412ca7
mov eax, dword [esi]
mov dword [eax], 0x8e9202fc
jmp 0x413dae
call fcn.00418480
push eax
mov eax, esp
push eax
mov ecx, esp
sub esp, 8
mov edx, esp
mov dword [esi + 0x2cc], edx
push eax
mov edx, esp
mov dword [esi + 0x408], edx
push eax
mov edx, esp
mov dword [esi + 0xf4], edx
push eax
mov edx, esp
mov dword [esi + 0x40c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0xf8], edx
push eax
mov edx, esp
mov dword [esi + 0x410], edx
push eax
mov edx, esp
mov dword [esi + 0x2d0], edx
push eax
mov edx, esp
mov dword [esi + 0x414], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2d4], edx
push eax
mov edx, esp
mov dword [esi + 0x418], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2d8], edx
push eax
mov edx, esp
mov dword [esi + 0x41c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2dc], edx
push eax
mov edx, esp
mov dword [esi + 0x420], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x38], edx
push eax
mov edx, esp
mov dword [esi + 0x2e0], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0xfc], edx
push eax
mov edx, esp
mov dword [esi + 0x424], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2e4], edx
push eax
mov edx, esp
mov dword [esi + 0x428], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2e8], edx
push eax
mov edx, esp
mov dword [esi + 0x42c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2ec], edx
push eax
mov edx, esp
mov dword [esi + 0x430], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2f0], edx
push eax
mov edx, esp
mov dword [esi + 0x434], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2f4], edx
push eax
mov edx, esp
mov dword [esi + 0x438], edx
push eax
mov edx, esp
mov dword [esi + 0x3c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x2f8], edx
push eax
mov edx, esp
mov dword [esi + 0x43c], edx
sub esp, 0x88
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
mov dword [esi + 0x60], edx
push eax
mov edx, esp
mov dword [esi + 0x100], edx
push eax
mov edx, esp
mov dword [esi + 0x440], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x64], edx
push eax
mov edx, esp
mov dword [esi + 0x2fc], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x300], edx
push eax
mov edx, esp
mov dword [esi + 0x444], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x304], edx
push eax
mov edx, esp
mov dword [esi + 0x448], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x308], edx
push eax
mov edx, esp
mov dword [esi + 0x44c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x104], edx
push eax
mov edx, esp
mov dword [esi + 0x450], edx
push eax
mov edx, esp
mov dword [esi + 0x40], edx
push eax
mov edx, esp
mov dword [esi + 0x30c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x68], edx
push eax
mov edx, esp
mov dword [esi + 0x310], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x6c], edx
push eax
mov edx, esp
mov dword [esi + 0x314], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x70], edx
push eax
mov edx, esp
mov dword [esi + 0x318], edx
push eax
mov edx, esp
mov dword [esi + 0x74], edx
push eax
mov edx, esp
mov dword [esi + 0x31c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x78], edx
push eax
mov edx, esp
mov dword [esi + 0x320], edx
sub esp, 0x10
mov edx, esp
mov dword [esi + 0x20], edx
push eax
mov edx, esp
mov dword [esi + 0x24], edx
push eax
mov edx, esp
mov dword [esi + 0x324], edx
push eax
mov edx, esp
mov dword [esi + 0x454], edx
sub esp, 0x88
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
mov dword [esi + 0x7c], edx
push eax
mov edx, esp
mov dword [esi + 0x108], edx
push eax
mov edx, esp
mov dword [esi + 0x458], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x328], edx
push eax
mov edx, esp
mov dword [esi + 0x45c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x32c], edx
push eax
mov edx, esp
mov dword [esi + 0x460], edx
push eax
mov edx, esp
mov dword [esi + 0x330], edx
push eax
mov edx, esp
mov dword [esi + 0x464], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x334], edx
push eax
mov edx, esp
mov dword [esi + 0x468], edx
push eax
mov edx, esp
mov dword [esi + 0x338], edx
push eax
mov edx, esp
mov dword [esi + 0x46c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x33c], edx
push eax
mov edx, esp
mov dword [esi + 0x470], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x340], edx
push eax
mov edx, esp
mov dword [esi + 0x474], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x344], edx
push eax
mov edx, esp
mov dword [esi + 0x478], edx
sub esp, 0x10
mov edx, esp
mov dword [esi + 0x44], edx
sub esp, 0x88
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
mov dword [esi + 0x80], edx
push eax
mov edx, esp
mov dword [esi + 0x10c], edx
push eax
mov edx, esp
mov dword [esi + 0x47c], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x348], edx
push eax
mov edx, esp
mov dword [esi + 0x480], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x34c], edx
push eax
mov edx, esp
mov dword [esi + 0x484], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x350], edx
push eax
mov edx, esp
mov dword [esi + 0x488], edx
sub esp, 8
mov edx, esp
mov dword [esi + 0x354], edx
push eax
mov edx, esp
mov dword [esi + 0x48c], edx
sub esp, 0x88
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
mov dword [esi + 0xc], edx
mov cl, byte [ecx]
mov byte [esi + 0x188], cl
mov byte [eax], 0x59
mov byte [eax + 1], 0xff
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 4
jne 0x40fde2
xor ecx, ecx
cmp ecx, 4
jae 0x40fe1f
mov bl, byte [eax + ecx]
mov edi, ecx
shl edi, 1
and edi, 0xaa
mov edx, ecx
xor edx, 0x55
add edx, edi
xor dl, bl
add dl, 0x57
mov byte [eax + ecx], dl
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0x40fdf0
sub esp, 8
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401960
add esp, 8
mov dword [esi + 0x110], eax
cmp dword [esi + 0x110], 0
sete al
and al, 1
mov byte [esi + 0x19], al
mov eax, dword [esi]
mov dword [eax], 0x76c8d16d
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x6c176860
mov byte [esi + 0xb], 0
jmp 0x413dae
mov eax, 0x9b1e4fb0
cmp dword [esi + 0x48], 2
jl 0x4100a4
mov eax, 0x38824ef6
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, 0xadccb214
cmp dword [esi + 0x48], 1
jl 0x4100ef
mov eax, 0x7c657e09
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, 0x188f8bc9
cmp dword [esi + 0x48], 0
je 0x410108
mov eax, 0x65824b9a
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0xc17b76a4
jmp 0x413dae
mov ecx, dword [esi + 0x2e0]
mov eax, dword [esi + 0x38]
mov cl, byte [ecx]
mov byte [esi + 0x1ac], cl
mov byte [eax], 0xea
mov byte [eax + 1], 0xfa
mov byte [eax + 2], 0x4e
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x41048b
mov eax, dword [esi + 0x38]
xor ecx, ecx
cmp ecx, 8
jae 0x4104b6
mov dl, byte [eax + ecx]
mov dh, cl
add dh, 0x6d
xor dh, dl
add dh, 0xdf
mov byte [eax + ecx], dh
add ecx, 1
jmp 0x41049c
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 3
call fcn.00401b10
add esp, 0xc
sub eax, 1
mov al, 1
sbb al, 0xff
and al, 1
mov byte [esi + 0x1b], al
mov eax, dword [esi]
mov dword [eax], 0x2672db8e
jmp 0x413dae
mov eax, dword [esi + 0xfc]
mov ecx, dword [esi + 0x424]
mov eax, dword [esi + 0xfc]
mov cl, byte [ecx]
mov byte [esi + 0x1b0], cl
mov byte [eax], 0xa8
mov byte [eax + 1], 0x39
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x41053b
mov edi, dword [esi + 0xfc]
xor ecx, ecx
cmp ecx, 6
jae 0x410597
movzx eax, byte [edi + ecx]
mov dword [esi + 0x3b8], eax
mov ebx, ecx
shl ebx, 1
and ebx, 0x19993f94
mov edx, ecx
xor edx, 0x8ccc9fca
mov eax, edx
and eax, ebx
shl eax, 1
xor edx, ebx
add edx, eax
xor edx, dword [esi + 0x3b8]
mov eax, edx
shl eax, 1
and eax, 0x1a
xor edx, 0xd
add edx, eax
add dl, 1
mov byte [edi + ecx], dl
add ecx, 1
jmp 0x41054f
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00401890
add esp, 8
mov dword [esi + 0x358], eax
mov eax, dword [esi]
mov dword [eax], 0x7aacbea7
jmp 0x413dae
mov eax, dword [esi + 0x28]
sub esp, 4
mov dword [esp], eax
call fcn.00408390
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xa65344a2
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x5eb1acb6
jmp 0x413dae
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x410a26
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408380
add esp, 4
mov dword [esi + 0x11c], eax
mov eax, dword [0x44d2b4]
mov dword [esi + 0x3b4], eax
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx]
mov dword [esi + 0x3a8], eax
mov edx, dword [esi + 0x11c]
mov edi, dword [esi + 0x28]
mov ebx, dword [esi + 0x118]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov ecx, dword [esi + 0x3a8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call dword [esi + 0x3b4]
mov ecx, 0x648a85ee
cmp eax, 0
jge 0x410a9d
mov ecx, 0x9d6b7844
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0xc6a97aef
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x14134438
jmp 0x413dae
mov eax, dword [esi + 0x28]
sub esp, 4
mov dword [esp], eax
call fcn.00408390
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x9a23aaf
jmp 0x413dae
mov eax, dword [esi + 0x28]
sub esp, 4
mov dword [esp], eax
call fcn.00408390
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x5df84f4a
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x500af635
jmp 0x413dae
mov ecx, dword [esi + 0x60]
call fcn.00409ba0
mov ecx, dword [esi + 0x60]
call fcn.004090b0
mov eax, dword [esi]
mov dword [eax], 0x948dcc88
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x5eb1acb6
jmp 0x413dae
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x440]
mov eax, dword [esi + 0x100]
mov cl, byte [ecx]
mov byte [esi + 0x1cc], cl
mov byte [eax], 0x7d
mov byte [eax + 1], 0xe7
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 4
jne 0x410e4c
mov eax, dword [esi + 0x100]
xor ecx, ecx
cmp ecx, 4
jae 0x410e97
movzx edi, byte [eax + ecx]
mov edx, ecx
add edx, 0x2089d859
xor edx, edi
mov ebx, edx
and ebx, 1
or edx, 1
add edx, 0x42
add ebx, edx
mov byte [eax + ecx], bl
mov edx, ecx
shl edx, 1
and edx, 2
mov edi, ecx
and edi, edx
or ecx, edx
xor ecx, 1
add ecx, edi
jmp 0x410e60
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b10
add esp, 0xc
mov ecx, 0xcf9a9919
cmp eax, 0
jne 0x410ec3
mov ecx, 0xa8eaaa7d
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x6a71a4cc
jmp 0x413dae
mov eax, dword [esi + 0x49c]
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b10
add esp, 0xc
mov ecx, 0x2cb5fc78
cmp eax, 0
jne 0x410fa8
mov ecx, 0xa8eaaa7d
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x413dae
mov ecx, dword [esi + 0x44c]
mov eax, dword [esi + 0x308]
mov cl, byte [ecx]
mov byte [esi + 0x1e0], cl
mov byte [eax], 0x40
mov byte [eax + 1], 0xeb
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x411147
mov eax, dword [esi + 0x308]
xor edi, edi
cmp edi, 6
jae 0x41118d
mov bl, byte [eax + edi]
movzx ecx, bl
mov dword [esi + 0x39c], ecx
mov ecx, edi
add ecx, 0x65275357
mov edx, ecx
and edx, dword [esi + 0x39c]
shl edx, 1
sub ecx, edx
add cl, bl
add cl, 0x4d
mov byte [eax + edi], cl
add edi, 1
jmp 0x41115b
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b10
add esp, 0xc
cmp eax, 0
setne al
and al, 1
mov byte [esi + 0x1d], al
mov eax, dword [esi]
mov dword [eax], 0xbc5cdd2f
jmp 0x413dae
mov eax, 0xc19207c2
test byte [esi + 0x1d], 1
jne 0x4111d2
mov eax, 0xa8eaaa7d
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov ecx, dword [esi + 0x450]
mov eax, dword [esi + 0x104]
mov cl, byte [ecx]
mov byte [esi + 0x1e4], cl
mov byte [eax], 0xbe
mov byte [eax + 1], 0xae
mov byte [eax + 2], 0xda
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4111ff
mov eax, dword [esi + 0x104]
xor ecx, ecx
cmp ecx, 7
jae 0x41123e
movzx edi, byte [eax + ecx]
mov edx, ecx
add edx, 0x4f
mov ebx, edi
xor ebx, 0xffffffff
and edx, ebx
mov ebx, 0xb0
sub ebx, ecx
and ebx, edi
or edx, ebx
add dl, 0x75
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x411213
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b10
add esp, 0xc
cmp eax, 0
setne cl
xor cl, 0xff
mov eax, 0x65824b9a
test cl, 1
jne 0x411273
mov eax, 0x3cfbfadf
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi + 0x104]
mov eax, dword [esi]
mov dword [eax], 0x65824b9a
jmp 0x413dae
mov ecx, dword [esi + 0x20]
sub esp, 4
mov dword [esp], 0x1000
call fcn.0043b450
mov ecx, 0x7685ac41
cmp eax, 0
jge 0x41179c
mov ecx, 0x23b8a67
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x413dae
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
sub eax, 0xfffffffe
mov dword [esi + 0x4a8], eax
mov eax, dword [esi]
mov dword [eax], 0x864378fd
jmp 0x413dae
mov eax, dword [esi + 0x4a8]
sub esp, 4
mov dword [esp], eax
call fcn.0043b030
add esp, 4
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
add eax, 2
mov dword [esi + 0x3e8], eax
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov dword [esi + 0x3e4], eax
mov eax, dword [esi + 0x84]
mov dword [esi + 0x3d8], eax
mov al, byte [esi + 0x228]
mov byte [esi + 0x26c], al
mov byte [esi + 0x22c], 0x37
mov byte [esi + 0x22d], 0x36
mov byte [esi + 0x22e], 0x35
mov byte [esi + 0x22f], 0x34
mov eax, 4
mov byte [esi + eax + 0x22c], 0
add eax, 1
cmp eax, 5
jne 0x4119d9
xor eax, eax
cmp eax, 5
jae 0x411a0d
mov cl, byte [esi + eax + 0x22c]
mov dl, al
add dl, 0xcc
xor dl, cl
add dl, 4
mov byte [esi + eax + 0x22c], dl
add eax, 1
jmp 0x4119eb
mov edx, dword [esi + 0x22c]
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44d2b8]
jb 0x411a27
jmp 0x411ac6
mov dword [esi + 0xe4], edx
mov edx, dword [0x44d2bc]
cmp dword [edx + edi*8], 0xfc36c0a1
sete bl
xor ecx, ecx
test bl, 1
jne 0x411a46
jmp 0x411aab
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0xe4]
je 0x411aab
mov eax, dword [0x44d2c0]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x3e4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esi + 0x3d8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x3e8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.0043d920
add esp, 0x20
mov ecx, 1
test bl, 1
je 0x411ab8
mov edx, dword [esi + 0xe4]
jmp 0x411ac6
add edi, 1
mov edx, dword [esi + 0xe4]
jmp 0x411a15
cmp ecx, 2
je 0x411acd
mov edx, eax
mov eax, 0x565fa2c2
cmp edx, 0
jge 0x411adc
mov eax, 0x7f77af63
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi + 0x290]
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x88]
mov ecx, dword [eax]
mov eax, 0xb6dab398
cmp dword [esi + 0x8c], ecx
jae 0x411be3
mov eax, 0xde9a9747
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x374]
mov dword [esi + 0x294], eax
jmp 0x413dae
mov eax, dword [esi + 0x8c]
movzx ecx, word [eax]
mov eax, 0x746019bf
cmp ecx, 0x5c
je 0x411c10
mov eax, 0x3be8804
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi + 0x134]
sub esp, 4
mov dword [esp], eax
call fcn.00408390
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x210b3845
jmp 0x413dae
mov eax, dword [esi + 0x90]
sub esp, 4
mov dword [esp], eax
call fcn.00408390
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x9bef584e
jmp 0x413dae
mov eax, dword [esi + 0x36c]
sub esp, 4
mov dword [esp], eax
call fcn.00418030
add esp, 4
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 0x411dfb
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408380
add esp, 4
mov dword [esi + 0x13c], eax
mov eax, dword [esi + 0x13c]
mov ecx, dword [esi + 0x36c]
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.0040ad30
add esp, 0x10
mov ecx, dword [esi + 0x7c]
sub esp, 4
mov dword [esp], 1
call fcn.00408fc0
mov eax, dword [esi]
mov dword [eax], 0xb6750631
mov dword [esi + 0x298], 0
jmp 0x413dae
mov eax, dword [esi + 0x298]
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0x368]
sub esp, 4
mov dword [esp], eax
call fcn.00401b70
add esp, 4
mov ecx, 0xc4eaa44c
cmp dword [esi + 0x140], eax
jb 0x411e96
mov ecx, 0x9c26fa28
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x264c8813
jmp 0x413dae
mov eax, dword [esi + 0x140]
mov ecx, dword [esi + 0x368]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401b50
add esp, 4
mov dword [esp], eax
call fcn.004018d0
add esp, 4
mov dword [esi + 0x144], eax
mov eax, 0x23521bd8
cmp dword [esi + 0x144], 0
je 0x411eee
mov eax, 0xc04c2e9a
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi + 0x144]
sub esp, 4
mov dword [esp], eax
call fcn.00418030
add esp, 4
mov edi, eax
add edi, 0x84a15fe2
add edi, 1
sub edi, 0x84a15fe2
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411f41
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408380
add esp, 4
mov dword [esi + 0x148], eax
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x144]
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.0040ad30
add esp, 0x10
mov eax, dword [esi + 0x148]
mov dword [esi + 0x3ac], eax
mov ecx, dword [esi + 0x13c]
mov edx, dword [esi + 0x138]
mov eax, dword [esi + 0x4a4]
mov dword [esi + 0x3a0], eax
mov ebx, dword [esi + 0x4a0]
mov eax, dword [esi + 0x7c]
xor edi, edi
sub esp, 0x1c
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esi + 0x3ac]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x3a0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0
call fcn.00422700
add esp, 0x1c
mov eax, dword [esi]
mov dword [eax], 0x39729394
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0xe3a86258
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x6a786c15
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0xb29c306
jmp 0x413dae
mov eax, dword [esi + 0x24]
mov eax, dword [esi]
mov dword [eax], 0x3d6e1dce
jmp 0x413dae
mov eax, dword [esi + 0x29c]
mov dword [esi + 0x15c], eax
mov ecx, dword [esi + 0x464]
mov eax, dword [esi + 0x330]
mov cl, byte [ecx]
mov byte [esi + 0x240], cl
mov byte [eax], 0x52
mov byte [eax + 1], 0xc7
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 4
jne 0x41256a
mov ecx, dword [esi + 0x330]
xor eax, eax
cmp eax, 4
jae 0x4125f7
movzx edx, byte [ecx + eax]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
xor eax, 0xf42f01ce
mov ebx, dword [esi + 0x58]
or ebx, 0xbd0fe31
and ebx, eax
mov eax, dword [esi + 0x58]
or eax, 0xbd0fe31
add ebx, eax
mov edi, ebx
and edi, edx
mov dword [esi + 0x3cc], ecx
mov ecx, edi
and ecx, 0xfd
mov eax, edi
and eax, 2
xor eax, 2
imul eax, ecx
mov ecx, edi
and ecx, 2
or edi, 2
imul edi, ecx
add edi, eax
sub edi, ebx
mov eax, edx
xor eax, 0xffffffff
mov ecx, edi
and ecx, eax
mov eax, dword [esi + 0x58]
xor edi, 0xffffffff
and edx, edi
sub edx, ecx
mov ecx, dword [esi + 0x3cc]
add dl, 0xb
mov byte [ecx + eax], dl
add eax, 1
jmp 0x41257e
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401890
add esp, 8
mov dword [esi + 0x160], eax
mov eax, 0x783c5f3a
cmp dword [esi + 0x160], 0
jne 0x412625
mov eax, 0x626f4f4
mov ecx, dword [esi]
mov dword [ecx], eax
mov dword [esi + 0x2a0], 0
jmp 0x413dae
mov eax, dword [esi + 0x168]
sub esp, 4
mov dword [esp], eax
call fcn.00401b70
add esp, 4
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x2c]
mov ecx, 0xc
mul ecx
seto dl
add eax, 4
setb cl
or dl, cl
mov ecx, 0xffffffff
test dl, 1
jne 0x4127c6
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408380
add esp, 4
mov ecx, dword [esi + 0x2c]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0x98], eax
mov eax, 0xe2d666cf
cmp dword [esi + 0x2c], 0
je 0x4127f2
mov eax, 0x44bafab9
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x27e0471
mov eax, dword [esi + 0x98]
mov dword [esi + 0x2a4], eax
jmp 0x413dae
mov edi, dword [esi + 0x2ac]
mov eax, dword [esi + 0x2b0]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x44]
mov dword [ecx], eax
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x154]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x15c]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x164]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x80]
sub esp, 4
mov dword [esp], 2
call fcn.00408fc0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x80]
mov edx, dword [esi + 0x44]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
call fcn.00418980
add esp, 0x10
mov ecx, dword [esi + 0x80]
call fcn.00409ba0
mov eax, 0x80e0d662
cmp dword [esi + 0x30], 0
je 0x412c10
mov eax, 0x3882f01c
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi + 0x2b4]
add eax, 0xfffffff4
mov dword [esi + 0x170], eax
mov ecx, dword [esi + 0x170]
call fcn.00418310
mov ecx, dword [esi + 0x170]
mov eax, 0xcfa2b9f2
cmp ecx, dword [esi + 0x30]
je 0x412c92
mov eax, 0x929bc755
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x170]
mov dword [esi + 0x2b4], eax
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x80e0d662
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0xccad855e
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0xdda48f12
jmp 0x413dae
mov eax, dword [esi + 0x154]
sub esp, 4
mov dword [esp], eax
call fcn.00408390
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x9e110b19
jmp 0x413dae
cmp dword [esi + 0x15c], 0
sete al
and al, 1
mov byte [esi + 0x1e], al
mov eax, dword [esi]
mov dword [eax], 0x94d72893
jmp 0x413dae
mov eax, 0xfa16ca9d
test byte [esi + 0x1e], 1
jne 0x412d9e
mov eax, 0x681b30ad
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x65824b9a
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x391d19d1
jmp 0x413dae
mov eax, dword [esi + 0x17c]
sub esp, 4
mov dword [esp], eax
call fcn.00401b70
add esp, 4
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x34]
mov ecx, 8
mul ecx
seto dl
add eax, 4
setb cl
or dl, cl
mov ecx, 0xffffffff
test dl, 1
jne 0x41314c
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408380
add esp, 4
mov ecx, dword [esi + 0x34]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0xa8], eax
mov eax, 0x8b53bfb6
cmp dword [esi + 0x34], 0
je 0x413178
mov eax, 0x90f99330
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x3fad7822
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0x159e9377
mov dword [esi + 0x2bc], 0
jmp 0x413dae
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0x17c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401b80
add esp, 8
mov dword [esi + 0x27c], eax
mov ecx, dword [esi + 0x488]
mov eax, dword [esi + 0x350]
mov cl, byte [ecx]
mov byte [esi + 0x264], cl
mov byte [eax], 0x45
mov byte [eax + 1], 0x4b
mov byte [eax + 2], 0x36
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4132b6
mov eax, dword [esi + 0x350]
mov dword [esi + 0xcc], eax
xor ecx, ecx
cmp ecx, 7
jae 0x413324
mov eax, dword [esi + 0xcc]
movzx edi, byte [eax + ecx]
mov ebx, ecx
add ebx, 0x2c0ed8b6
mov edx, edi
xor edx, 0xffffffff
mov eax, ebx
and eax, edx
mov edx, 0x49
sub edx, ecx
and edx, 0x86
and ebx, 0x79
or edx, ebx
xor edx, 0x79
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or edx, edi
add edx, ebx
or edx, eax
add dl, 0x72
mov eax, dword [esi + 0xcc]
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x4132d0
sub esp, 8
mov eax, dword [esi + 0x27c]
mov dword [esp], eax
mov eax, dword [esi + 0xcc]
mov dword [esp + 4], eax
call fcn.00401890
add esp, 8
mov dword [esi + 0x3d0], eax
mov ecx, dword [esi + 0x48c]
mov eax, dword [esi + 0x354]
mov cl, byte [ecx]
mov byte [esi + 0x268], cl
mov byte [eax], 0x8f
mov byte [eax + 1], 0x95
mov byte [eax + 2], 0x2a
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x41336c
mov eax, dword [esi + 0x354]
mov dword [esi + 0xd0], eax
xor edi, edi
cmp edi, 6
jae 0x4133f0
mov eax, dword [esi + 0xd0]
movzx eax, byte [eax + edi]
mov dword [esi + 0x3c4], eax
mov edx, edi
add edx, 0x43d05847
mov ebx, edi
add ebx, 0x47
and ebx, eax
mov ecx, ebx
and ecx, 2
xor ecx, 2
mov eax, ebx
and eax, 0xfd
imul eax, ecx
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
add ebx, eax
add edx, dword [esi + 0x3c4]
mov eax, edx
xor eax, 0xffffffff
mov ecx, ebx
and ecx, eax
xor ebx, 0xffffffff
and edx, ebx
sub edx, ecx
add dl, 0x9d
mov eax, dword [esi + 0xd0]
mov byte [eax + edi], dl
add edi, 1
jmp 0x413386
sub esp, 8
mov eax, dword [esi + 0x27c]
mov dword [esp], eax
mov eax, dword [esi + 0xd0]
mov dword [esp + 4], eax
call fcn.00401890
add esp, 8
mov ecx, dword [esi + 0xac]
shl ecx, 3
add ecx, dword [esi + 0xa8]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0x3d0]
mov dword [esp + 4], eax
call fcn.00418350
mov eax, dword [esi]
mov dword [eax], 0xf8b000d3
jmp 0x413dae
mov eax, 0xcdf510bf
test byte [esi + 0x1f], 1
jne 0x413502
mov eax, 0x1a48bd7c
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413dae
mov eax, dword [esi + 0x2c8]
add eax, 0xfffffff8
mov dword [esi + 0x180], eax
mov ecx, dword [esi + 0x180]
call fcn.00418400
mov ecx, dword [esi + 0x180]
mov eax, 0x7cdc58ce
cmp ecx, dword [esi + 0x10]
je 0x41359d
mov eax, 0xce2c186d
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x180]
mov dword [esi + 0x2c8], eax
jmp 0x413dae
mov eax, dword [esi]
mov dword [eax], 0xfb8a825a
jmp 0x413dae
mov eax, dword [esi + 0x114]
add eax, 1
mov dword [esi + 0x4cc], eax
mov eax, dword [esi]
mov dword [eax], 0x38523bd
mov eax, dword [esi + 0x4cc]
mov dword [esi + 0x288], eax
jmp 0x413dae
cwde
inc edx
mov ebp, 0xccc7ea38
sbb eax, 0xef40203b
push eax
mov eax, esp
push eax
mov ecx, esp
mov cl, byte [ecx]
mov byte [esi + 0x184], cl
mov byte [eax], 0x59
mov byte [eax + 1], 0xff
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 4
jne 0x4136c9
xor ecx, ecx
cmp ecx, 4
jae 0x413706
mov bl, byte [eax + ecx]
mov edi, ecx
shl edi, 1
and edi, 0xaa
mov edx, ecx
xor edx, 0x55
add edx, edi
xor dl, bl
add dl, 0x57
mov byte [eax + ecx], dl
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0x4136d7
sub esp, 8
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401960
add esp, 8
mov eax, dword [esi]
mov dword [eax], 0x8e9202fc
jmp 0x413dae
jmp 0x40ef23