Function at 0x40ec30
Capabilities:
Authenticate hmac
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x4e8
mov esi, esp
mov dword [esi + 0x398], 0x5583abe5
lea eax, [esi + 0x398]
mov dword [esi], eax
mov eax, dword [esi + 0x398]
mov ecx, eax
sub ecx, 0x8167bb08
je 0x410286
jmp 0x40ec69
mov ecx, eax
sub ecx, 0x81ebdc74
je 0x4133a6
jmp 0x40ec79
mov ecx, eax
sub ecx, 0x8205fdf9
je 0x40fd1b
jmp 0x40ec89
mov ecx, eax
sub ecx, 0x856a9045
je 0x41186a
jmp 0x40ec99
mov ecx, eax
sub ecx, 0x879e8efc
je 0x411ba5
jmp 0x40eca9
mov ecx, eax
sub ecx, 0x88719e23
je 0x412792
jmp 0x40ecb9
mov ecx, eax
sub ecx, 0x8a17e22c
je 0x411fca
jmp 0x40ecc9
mov ecx, eax
sub ecx, 0x8aacd969
je 0x410f90
jmp 0x40ecd9
mov ecx, eax
sub ecx, 0x8e5421f5
je 0x412057
jmp 0x40ece9
mov ecx, eax
sub ecx, 0x90f2b71d
je 0x412cbc
jmp 0x40ecf9
mov ecx, eax
sub ecx, 0x9374e10c
je 0x411f88
jmp 0x40ed09
mov ecx, eax
sub ecx, 0x94f51411
je 0x412ace
jmp 0x40ed19
mov ecx, eax
sub ecx, 0x99bc6db6
je 0x411f95
jmp 0x40ed29
mov ecx, eax
sub ecx, 0x99d63414
je 0x4121ec
jmp 0x40ed39
mov ecx, eax
sub ecx, 0x9a7671c0
je 0x411e77
jmp 0x40ed49
mov ecx, eax
sub ecx, 0x9aa76ffa
je 0x411e6a
jmp 0x40ed59
mov ecx, eax
sub ecx, 0x9aca78d1
je 0x410b9d
jmp 0x40ed69
mov ecx, eax
sub ecx, 0x9c2889f1
je 0x411f67
jmp 0x40ed79
mov ecx, eax
sub ecx, 0x9eede3db
je 0x413483
jmp 0x40ed89
mov ecx, eax
sub ecx, 0xa12b17f9
je 0x411df8
jmp 0x40ed99
mov ecx, eax
sub ecx, 0xa1c02830
je 0x413462
jmp 0x40eda9
mov ecx, eax
sub ecx, 0xa27d352a
je 0x40fdc6
jmp 0x40edb9
mov ecx, eax
sub ecx, 0xa46da3e3
je 0x410ae5
jmp 0x40edc9
mov ecx, eax
sub ecx, 0xa4c4c0a6
je 0x4115f4
jmp 0x40edd9
mov ecx, eax
sub ecx, 0xa52b6c95
je 0x410981
jmp 0x40ede9
mov ecx, eax
sub ecx, 0xa5939ff3
je 0x412bc9
jmp 0x40edf9
mov ecx, eax
sub ecx, 0xb0db757a
je 0x412089
jmp 0x40ee09
mov ecx, eax
sub ecx, 0xb1075716
je 0x411665
jmp 0x40ee19
mov ecx, eax
sub ecx, 0xb2d0e8bc
je 0x4134f0
jmp 0x40ee29
mov ecx, eax
sub ecx, 0xb40026d6
je 0x40fdb9
jmp 0x40ee39
mov ecx, eax
sub ecx, 0xb427ad06
je 0x411a33
jmp 0x40ee49
mov ecx, eax
sub ecx, 0xb42bf95f
je 0x412c1a
jmp 0x40ee59
mov ecx, eax
sub ecx, 0xb6fc8834
je 0x413aaa
jmp 0x40ee69
mov ecx, eax
sub ecx, 0xb8cb6d6e
je 0x411161
jmp 0x40ee79
mov ecx, eax
sub ecx, 0xbae79256
je 0x413490
jmp 0x40ee89
mov ecx, eax
sub ecx, 0xbd2fec81
je 0x412019
jmp 0x40ee99
mov ecx, eax
sub ecx, 0xbd60b4df
je 0x412770
jmp 0x40eea9
mov ecx, eax
sub ecx, 0xc0fc6272
je 0x410af2
jmp 0x40eeb9
mov ecx, eax
sub ecx, 0xc1f1fc18
je 0x411e5d
jmp 0x40eec9
mov ecx, eax
sub ecx, 0xc27b0bf6
je 0x4121f9
jmp 0x40eed9
mov ecx, eax
sub ecx, 0xc297d676
je 0x40fbd5
jmp 0x40eee9
mov ecx, eax
sub ecx, 0xc2f10657
je 0x413a11
jmp 0x40eef9
mov ecx, eax
sub ecx, 0xc37873e0
je 0x413115
jmp 0x40ef09
mov ecx, eax
sub ecx, 0xc69e7293
je 0x4122a2
jmp 0x40ef19
mov ecx, eax
sub ecx, 0xc901572d
je 0x412074
jmp 0x40ef29
mov ecx, eax
sub ecx, 0xcaf0742d
je 0x413455
jmp 0x40ef39
mov ecx, eax
sub ecx, 0xcbb71cdd
je 0x410ac4
jmp 0x40ef49
mov ecx, eax
sub ecx, 0xcc876e90
je 0x4123a6
jmp 0x40ef59
mov ecx, eax
sub ecx, 0xcdb7b98c
je 0x412d36
jmp 0x40ef69
mov ecx, eax
sub ecx, 0xcde13967
je 0x413034
jmp 0x40ef79
mov ecx, eax
sub ecx, 0xceaa5080
je 0x41083e
jmp 0x40ef89
mov ecx, eax
sub ecx, 0xceefe4eb
je 0x4131bb
jmp 0x40ef99
mov ecx, eax
sub ecx, 0xcf696ae1
je 0x410bba
jmp 0x40efa9
mov ecx, eax
sub ecx, 0xd0d968fe
je 0x4134e3
jmp 0x40efb9
mov ecx, eax
sub ecx, 0xd32d32e2
je 0x4134be
jmp 0x40efc9
mov ecx, eax
sub ecx, 0xd357b3bc
je 0x411fa2
jmp 0x40efd9
mov ecx, eax
sub ecx, 0xd7c494a1
je 0x410778
jmp 0x40efe9
mov ecx, eax
sub ecx, 0xd82c5307
je 0x4135f5
jmp 0x40eff9
mov ecx, eax
sub ecx, 0xd97f0d4e
je 0x41325c
jmp 0x40f009
mov ecx, eax
sub ecx, 0xdd34ecbc
je 0x412642
jmp 0x40f019
mov ecx, eax
sub ecx, 0xdf50d16a
je 0x411122
jmp 0x40f029
mov ecx, eax
sub ecx, 0xe0bf9a21
je 0x411c73
jmp 0x40f039
mov ecx, eax
sub ecx, 0xe0e54520
je 0x411c94
jmp 0x40f049
mov ecx, eax
sub ecx, 0xe0f5bd2e
je 0x41359b
jmp 0x40f059
mov ecx, eax
sub ecx, 0xe117366d
je 0x411e05
mov eax, dword [esi]
mov dword [eax], 0x6d79f35a
mov byte [esi + 0xb], 1
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x78561b90
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xa27d352a
jmp 0x413ae6
mov eax, 0x5760cef8
cmp dword [esi + 0x48], 2
jl 0x40fdd6
mov eax, 0xc9ba5a8
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov eax, dword [esi + 0x108]
mov eax, dword [esi]
mov dword [eax], 0xd0d968fe
jmp 0x413ae6
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x410793
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408300
add esp, 4
mov dword [esi + 0x134], eax
mov eax, dword [0x44cd1c]
mov dword [esi + 0x3bc], eax
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx]
mov dword [esi + 0x3b0], eax
mov edx, dword [esi + 0x134]
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x130]
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 + 0x3b0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call dword [esi + 0x3bc]
mov ecx, 0xea8a0dc3
cmp eax, 0
jge 0x41080a
mov ecx, 0x6b45f1e8
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xcf696ae1
jmp 0x413ae6
mov eax, dword [esi + 0x138]
mov ecx, dword [esi + 0x34c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401b60
add esp, 4
mov dword [esp], eax
call fcn.004018e0
add esp, 4
mov dword [esi + 0x13c], eax
mov eax, 0xe5a57288
cmp dword [esi + 0x13c], 0
je 0x4109c3
mov eax, 0x141ed083
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov eax, dword [esi + 0x88]
sub esp, 4
mov dword [esp], eax
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xa46da3e3
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xc0fc6272
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x2bd2c8a3
jmp 0x413ae6
mov ecx, dword [esi + 0x40]
call fcn.004099c0
mov ecx, dword [esi + 0x40]
call fcn.00409020
mov eax, dword [esi]
mov dword [eax], 0xcf696ae1
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x78514c6f
jmp 0x413ae6
mov ecx, dword [esi + 0x458]
mov eax, dword [esi + 0x114]
mov cl, byte [ecx]
mov byte [esi + 0x1e8], cl
mov byte [eax], 0x1c
mov byte [eax + 1], 0x79
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 5
jne 0x410fb0
mov edi, dword [esi + 0x114]
xor ecx, ecx
cmp ecx, 5
jae 0x41102e
mov dl, byte [edi + ecx]
mov dword [esi + 0x3dc], edi
movzx edi, dl
mov ebx, ecx
add ebx, 0xe94d536a
xor ebx, edi
mov edi, 0x16b2ac95
sub edi, ecx
or edi, ebx
mov ebx, edi
xor ebx, 0xffffffff
mov eax, ebx
and eax, 0xfd
and edi, 2
imul edi, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
add ebx, edi
mov edi, dword [esi + 0x3dc]
mov eax, ecx
sub eax, ebx
add al, dl
add al, 0x58
mov byte [edi + ecx], al
mov eax, ecx
shl eax, 1
and eax, 2
mov edx, ecx
and edx, eax
shl edx, 1
xor ecx, eax
xor ecx, 1
add ecx, edx
jmp 0x410fc4
mov eax, dword [esi + 4]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], 3
call fcn.00401b20
add esp, 0xc
mov ecx, 0x35720a9
cmp eax, 0
jne 0x41105a
mov ecx, 0x19b9aac8
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x413ae6
mov eax, dword [esi + 0x64]
mov eax, 0xd0d968fe
test byte [esi + 0x1f], 1
jne 0x411135
mov eax, 0x2a231635
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov ecx, dword [esi + 0x304]
mov eax, dword [esi + 0x44]
mov cl, byte [ecx]
mov byte [esi + 0x1f4], cl
mov byte [eax], 0xa3
mov byte [eax + 1], 9
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x41117e
mov eax, dword [esi + 0x44]
mov dword [esi + 0xe8], eax
xor ecx, ecx
cmp ecx, 7
jae 0x411201
mov eax, dword [esi + 0xe8]
movzx edx, byte [eax + ecx]
mov ebx, ecx
shl ebx, 1
and ebx, 0xbd4a887c
mov edi, ecx
xor edi, 0x5ea5443e
mov eax, edi
and eax, ebx
shl eax, 1
xor edi, ebx
add edi, eax
mov eax, edi
add eax, 1
mov ebx, edi
xor ebx, 0xffffffff
or ebx, 0xa0958b6
add ebx, eax
xor edx, 0xf5f6a749
and edi, 0xf5f6a749
xor edi, 0xf5f6a749
or ebx, edi
mov eax, edx
and eax, ebx
shl eax, 1
add edx, ebx
sub edx, eax
add dl, 0xca
mov eax, dword [esi + 0xe8]
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x411195
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0xe8]
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x28c], eax
mov ecx, dword [esi + 0x308]
mov eax, dword [esi + 0x68]
mov cl, byte [ecx]
mov byte [esi + 0x1fc], cl
mov byte [eax], 0xf0
mov byte [eax + 1], 0x61
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x41123f
mov eax, dword [esi + 0x68]
mov dword [esi + 0xd0], eax
xor ecx, ecx
cmp ecx, 7
jae 0x4112a3
mov eax, dword [esi + 0xd0]
movzx ebx, byte [eax + ecx]
mov edx, 0x67
sub edx, ecx
and edx, ebx
mov edi, ebx
shl edi, 1
xor edi, 0xffffffff
add edi, ebx
mov ebx, ecx
add ebx, 0x376dd998
and ebx, edi
mov edi, edx
xor edi, 0xffffffff
mov eax, ebx
and eax, edi
mov edi, ebx
xor edi, edx
add ebx, edi
sub ebx, eax
add bl, 8
mov eax, dword [esi + 0xd0]
mov byte [eax + ecx], bl
add ecx, 1
jmp 0x411256
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0xd0]
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x354], eax
mov ecx, dword [esi + 0x30c]
mov eax, dword [esi + 0x6c]
mov cl, byte [ecx]
mov byte [esi + 0x204], cl
mov byte [eax], 0x1d
mov byte [eax + 1], 0x89
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x4112e1
mov eax, dword [esi + 0x6c]
xor ecx, ecx
cmp ecx, 6
jae 0x411357
movzx edi, byte [eax + ecx]
mov ebx, ecx
add ebx, 0x7211ede
mov edx, 0xf8dee121
sub edx, ecx
and edx, 0xea3738c1
and ebx, 0x15c8c73e
or edx, ebx
xor edx, edi
mov ebx, edx
shl ebx, 1
and ebx, 0x52
xor ebx, 2
mov edi, edx
and edi, 0xdc5a65a9
xor edi, 0xebb7bad7
and edx, 0x23a59a56
xor edx, 0xdddae7bf
and edx, edi
xor edx, 0xffffffff
add ebx, edx
shl edx, 1
and edx, 2
xor ebx, 1
add ebx, edx
mov byte [eax + ecx], bl
add ecx, 1
jmp 0x4112f2
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401970
add esp, 8
mov dword [esi + 0x358], eax
mov ecx, dword [esi + 0x310]
mov eax, dword [esi + 0x70]
mov cl, byte [ecx]
mov byte [esi + 0x20c], cl
mov byte [eax], 0x96
mov byte [eax + 1], 0x1f
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 4
jne 0x41138f
mov eax, dword [esi + 0x70]
xor ecx, ecx
cmp ecx, 4
jae 0x4113c6
mov bl, byte [eax + ecx]
mov edi, ecx
xor edi, 0xfb
mov edx, ecx
shl edx, 1
and edx, 8
sub edx, edi
xor dl, bl
add dl, 0xe7
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x4113a0
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x35c], eax
mov ecx, dword [esi + 0x314]
mov eax, dword [esi + 0x74]
mov cl, byte [ecx]
mov byte [esi + 0x214], cl
mov byte [eax], 0xbc
mov byte [eax + 1], 0x19
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4113fe
mov eax, dword [esi + 0x74]
mov dword [esi + 0xdc], eax
xor ecx, ecx
cmp ecx, 7
jae 0x411471
mov eax, dword [esi + 0xdc]
movzx ebx, byte [eax + ecx]
mov edi, ecx
add edi, 0x7a
mov edx, 0x85
sub edx, ecx
mov eax, 0x85
sub eax, ecx
and edx, eax
or edx, ebx
mov eax, 5
sub eax, ecx
and eax, 0x44
and edi, 0xbb
or eax, edi
xor eax, 0xbb
and eax, ebx
xor edx, 0xffffffff
or eax, edx
add al, 0x9e
mov edx, dword [esi + 0xdc]
mov byte [edx + ecx], al
mov eax, ecx
shl eax, 1
or eax, 1
sub eax, ecx
mov ecx, eax
jmp 0x411415
mov eax, dword [esi + 4]
sub esp, 8
mov ecx, dword [esi + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401900
add esp, 8
fnstcw word [esi + 0x58]
movzx eax, word [esi + 0x58]
or eax, 0xc00
mov word [esi + 0x27c], ax
fldcw word [esi + 0x27c]
fistp dword [esi + 0x410]
fldcw word [esi + 0x58]
mov eax, dword [esi + 0x410]
mov dword [esi + 0x4a8], eax
mov ecx, dword [esi + 0x318]
mov eax, dword [esi + 0x78]
mov cl, byte [ecx]
mov byte [esi + 0x21c], cl
mov byte [eax], 0x92
mov byte [eax + 1], 0xae
mov byte [eax + 2], 0x3e
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 5
jne 0x4114db
mov eax, dword [esi + 0x78]
xor ecx, ecx
cmp ecx, 5
jae 0x411512
mov bl, byte [eax + ecx]
mov edi, ecx
shl edi, 1
and edi, 0x94
mov edx, ecx
xor edx, 0x4a
add edx, edi
xor dl, bl
add dl, 0x8e
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x4114ec
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00401900
add esp, 8
fnstcw word [esi + 0x56]
movzx eax, word [esi + 0x56]
or eax, 0xc00
mov word [esi + 0x27a], ax
fldcw word [esi + 0x27a]
fistp dword [esi + 0x40c]
fldcw word [esi + 0x56]
mov eax, dword [esi + 0x40c]
mov dword [esi + 0x4ac], eax
sub esp, 4
mov eax, dword [esi + 0x28c]
mov dword [esp], eax
call fcn.004187f0
add esp, 4
mov ebx, eax
sub ebx, 0xffffffff
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411586
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408300
add esp, 4
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0x140]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x28c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ab20
add esp, 0x10
mov eax, dword [esi + 0x140]
mov ecx, dword [esi + 0x24]
sub esp, 4
mov dword [esp], eax
call fcn.00418870
mov eax, dword [esi]
mov dword [eax], 0xc9decc
jmp 0x413ae6
mov eax, dword [esi + 0x140]
sub esp, 4
mov dword [esp], eax
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x3f7333c4
jmp 0x413ae6
mov eax, dword [esi + 0x28]
mov eax, dword [esi + 0x28]
mov dword [eax], 0
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov dword [esi + 0x3ec], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x3e8], eax
mov al, byte [esi + 0x220]
mov byte [esi + 0x278], al
mov byte [esi + 0x224], 0x17
mov byte [esi + 0x225], 0x16
mov byte [esi + 0x226], 0x15
mov byte [esi + 0x227], 0x14
mov eax, 4
mov byte [esi + eax + 0x224], 0
add eax, 1
cmp eax, 5
jne 0x4116b2
xor eax, eax
cmp eax, 5
jae 0x411733
movzx edi, byte [esi + eax + 0x224]
mov ecx, eax
xor ecx, 0x5f756483
mov edx, eax
or edx, 0x208a9b7c
and edx, ecx
shl edx, 1
mov ecx, eax
xor ecx, 0xa08a9b7c
add edx, ecx
mov ecx, edx
or ecx, edi
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or edx, edi
add edx, ebx
add ecx, 0xbef9ce15
sub ecx, edx
mov edx, ecx
and edx, 1
mov edi, ecx
and edi, 1
xor edi, 0xffffffff
xor ecx, 0x80
add ecx, edi
or edx, 0xde
add edx, ecx
add dl, 0x22
mov byte [esi + eax + 0x224], dl
add eax, 1
jmp 0x4116c4
mov eax, dword [esi + 0x224]
mov dword [esi + 0x100], eax
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44cd20]
jb 0x411753
jmp 0x4117e2
mov edx, dword [0x44cd24]
cmp dword [edx + edi*8], 0xfc36c0a1
sete bl
xor ecx, ecx
mov byte [esi + 0x1c], bl
test bl, 1
jne 0x41176f
jmp 0x4117d2
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0x100]
je 0x4117d2
mov eax, dword [0x44cd28]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x3ec]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov eax, dword [esi + 0x3e8]
mov dword [esp + 0x1c], eax
call fcn.0043e090
add esp, 0x20
mov ecx, 1
test byte [esi + 0x1c], 1
je 0x4117da
jmp 0x4117e2
add edi, 1
jmp 0x411741
cmp ecx, 2
je 0x4117ed
mov dword [esi + 0x100], eax
mov ecx, dword [esi + 0x460]
mov eax, dword [esi + 0x31c]
mov cl, byte [ecx]
mov byte [esi + 0x22c], cl
mov byte [eax], 0x1c
mov byte [eax + 1], 0x19
mov byte [eax + 2], 0x1e
mov byte [eax + 3], 0xdf
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x411815
mov eax, dword [esi + 0x31c]
xor edi, edi
cmp edi, 8
jae 0x41184d
movzx ebx, byte [eax + edi]
mov edx, edi
add edx, 0x3a
or edx, ebx
mov ecx, edi
add ecx, 0x3a
and ecx, ebx
sub edx, ecx
add dl, 0xde
mov byte [eax + edi], dl
add edi, 1
jmp 0x411829
mov ecx, dword [eax]
mov eax, 0x856a9045
cmp dword [esi + 0x100], ecx
je 0x411861
mov eax, 0x79f60272
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
add eax, 2
sub esp, 4
mov dword [esp], eax
call fcn.0043b670
add esp, 4
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
add eax, 2
mov dword [esi + 0x3f8], eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov dword [esi + 0x3f4], eax
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x3f0], eax
mov al, byte [esi + 0x230]
mov byte [esi + 0x274], al
mov byte [esi + 0x234], 0x17
mov byte [esi + 0x235], 0x16
mov byte [esi + 0x236], 0x15
mov byte [esi + 0x237], 0x14
mov eax, 4
mov byte [esi + eax + 0x234], 0
add eax, 1
cmp eax, 5
jne 0x4118d8
xor eax, eax
cmp eax, 5
jae 0x411959
movzx edi, byte [esi + eax + 0x234]
mov ecx, eax
xor ecx, 0x5f756483
mov edx, eax
or edx, 0x208a9b7c
and edx, ecx
shl edx, 1
mov ecx, eax
xor ecx, 0xa08a9b7c
add edx, ecx
mov ecx, edx
or ecx, edi
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or edx, edi
add edx, ebx
add ecx, 0xbef9ce15
sub ecx, edx
mov edx, ecx
and edx, 1
mov edi, ecx
and edi, 1
xor edi, 0xffffffff
xor ecx, 0x80
add ecx, edi
or edx, 0xde
add edx, ecx
add dl, 0x22
mov byte [esi + eax + 0x234], dl
add eax, 1
jmp 0x4118ea
mov edx, dword [esi + 0x234]
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44cd20]
jb 0x411973
jmp 0x411a14
mov dword [esi + 0xf8], edx
mov ecx, dword [0x44cd24]
cmp dword [ecx + edi*8], 0xfc36c0a1
sete bl
test bl, 1
jne 0x411990
jmp 0x4119f7
mov edx, dword [ecx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0xf8]
je 0x4119f9
mov eax, dword [0x44cd28]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x3f4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esi + 0x3f0]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x3f8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.0043e090
add esp, 0x20
mov ecx, 1
jmp 0x4119f9
xor ecx, ecx
test bl, 1
je 0x411a06
mov edx, dword [esi + 0xf8]
jmp 0x411a14
add edi, 1
mov edx, dword [esi + 0xf8]
jmp 0x411961
cmp ecx, 2
je 0x411a1b
mov edx, eax
mov eax, 0xb427ad06
cmp edx, 0
jge 0x411a2a
mov eax, 0x5f45abbf
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov eax, dword [esi + 0x354]
sub esp, 4
mov dword [esp], eax
call fcn.004187f0
add esp, 4
mov dword [esi + 0x360], eax
mov edi, dword [esi + 0x360]
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411a6e
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408300
add esp, 4
mov dword [esi + 0x144], eax
mov eax, dword [esi + 0x144]
mov ecx, dword [esi + 0x354]
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.0040ab20
add esp, 0x10
mov eax, dword [esi + 0x8c]
add eax, 4
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
mov eax, dword [eax]
mov ecx, dword [esi + 0x8c]
movzx ecx, word [ecx]
shr ecx, 1
mov edx, ecx
xor edx, 0xffffffff
and edx, 1
and ecx, 0xfffffffe
sub ecx, edx
shl ecx, 1
add eax, ecx
mov dword [esi + 0x364], eax
mov eax, dword [esi]
mov dword [eax], 0x670715ac
mov eax, dword [esi + 0x364]
mov dword [esi + 0x298], eax
jmp 0x413ae6
mov eax, dword [esi + 0x94]
add eax, 0xfffffffe
mov dword [esi + 0x4b4], eax
mov eax, dword [esi]
mov dword [eax], 0x670715ac
mov eax, dword [esi + 0x4b4]
mov dword [esi + 0x298], eax
jmp 0x413ae6
mov eax, dword [esi + 0x144]
sub esp, 4
mov dword [esp], eax
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xe0e54520
jmp 0x413ae6
mov eax, dword [esi + 0x4b8]
mov ecx, dword [esi + 0x98]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
sar eax, 1
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411cc3
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408300
add esp, 4
mov dword [esi + 0x148], eax
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x98]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00439c50
add esp, 8
mov eax, dword [esi]
mov dword [eax], 0x1439203c
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x8a17e22c
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x9aa76ffa
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x9a7671c0
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xd357b3bc
jmp 0x413ae6
mov eax, dword [esi + 0x158]
sub esp, 4
mov dword [esp], eax
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x9374e10c
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x99bc6db6
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xd357b3bc
jmp 0x413ae6
mov eax, dword [esi + 0x150]
sub eax, 0xffffffff
mov dword [esi + 0x4bc], eax
mov eax, dword [esi]
mov dword [eax], 0x77a73fdc
mov eax, dword [esi + 0x4bc]
mov dword [esi + 0x2a0], eax
jmp 0x413ae6
mov eax, dword [esi + 0x14c]
sub esp, 4
mov dword [esp], eax
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x21f27d12
jmp 0x413ae6
mov ecx, dword [esi + 0x7c]
call fcn.004099c0
mov ecx, dword [esi + 0x7c]
call fcn.00409020
mov eax, dword [esi]
mov dword [eax], 0x5f45abbf
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x79f60272
jmp 0x413ae6
mov ecx, dword [esi + 0x24]
call fcn.00418960
mov eax, dword [esi]
mov dword [eax], 0xd0d968fe
jmp 0x413ae6
mov eax, dword [esi + 0x11c]
mov ecx, dword [esi + 0x464]
mov eax, dword [esi + 0x11c]
mov cl, byte [ecx]
mov byte [esi + 0x23c], cl
mov byte [eax], 0xa8
mov byte [eax + 1], 0x19
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x4120af
mov eax, dword [esi + 0x11c]
mov dword [esi + 0xcc], eax
xor ecx, ecx
cmp ecx, 6
jae 0x412110
mov eax, dword [esi + 0xcc]
movzx edi, byte [eax + ecx]
mov edx, 0x85
sub edx, ecx
or edx, edi
mov ebx, 0x85
sub ebx, ecx
mov eax, 0x85
sub eax, ecx
or ebx, eax
and ebx, edi
mov eax, ebx
shl eax, 1
xor eax, 0xffffffff
add ebx, eax
and ebx, edx
mov al, 0x9d
sub al, bl
mov edx, dword [esi + 0xcc]
mov byte [edx + ecx], al
add ecx, 1
jmp 0x4120c9
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0xcc]
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x15c], eax
mov eax, dword [esi]
mov dword [eax], 0x67c2c537
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x6b7efe1a
jmp 0x413ae6
mov eax, dword [esi + 0x15c]
sub esp, 4
mov dword [esp], eax
call fcn.004187f0
add esp, 4
mov edi, eax
inc edi
mov ecx, edi
add ecx, ecx
mov eax, 0xffffffff
jb 0x41221d
mov eax, ecx
sub esp, 4
mov dword [esp], eax
call fcn.00408300
add esp, 4
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0x15c]
sub esp, 0x10
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.0040ab20
add esp, 0x10
mov eax, dword [esi + 0x160]
sub esp, 4
mov dword [esp], eax
call fcn.004187f0
add esp, 4
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x368], eax
mov eax, dword [esi + 0x368]
add eax, eax
setb byte [esi + 0x4c4]
mov dword [esi + 0x4c0], eax
mov eax, dword [esi]
mov dword [eax], 0xc69e7293
jmp 0x413ae6
mov eax, dword [esi + 0x4c0]
mov dl, byte [esi + 0x4c4]
mov ecx, 0xffffffff
test dl, 1
jne 0x4122ba
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408300
add esp, 4
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x368]
mov edx, dword [esi + 0x160]
xor edi, edi
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040ab20
add esp, 0x10
mov ecx, dword [esi + 0x46c]
mov eax, dword [esi + 0x320]
mov cl, byte [ecx]
mov byte [esi + 0x244], cl
mov byte [eax], 0x66
mov byte [eax + 1], 1
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x412320
mov eax, dword [esi + 0x320]
xor ecx, ecx
cmp ecx, 7
jae 0x412365
movzx edi, byte [eax + ecx]
mov edx, 0xff
sub edx, ecx
or edx, edi
mov ebx, 0xff
sub ebx, ecx
and ebx, edi
mov edi, ebx
shl edi, 1
xor edi, 0xffffffff
add ebx, edi
and ebx, edx
xor bl, 0xff
mov byte [eax + ecx], bl
add ecx, 1
jmp 0x412334
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x164], eax
mov eax, 0xcc876e90
cmp dword [esi + 0x164], 0
jne 0x412393
mov eax, 0x3fba3b67
mov ecx, dword [esi]
mov dword [ecx], eax
mov dword [esi + 0x2a4], 0
jmp 0x413ae6
mov eax, dword [esi + 0x164]
sub esp, 4
mov dword [esp], eax
call fcn.004187f0
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 0x4123de
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408300
add esp, 4
mov dword [esi + 0x36c], eax
mov eax, dword [esi + 0x36c]
mov ecx, dword [esi + 0x164]
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.0040ab20
add esp, 0x10
mov eax, dword [esi]
mov dword [eax], 0x3fba3b67
mov eax, dword [esi + 0x36c]
mov dword [esi + 0x2a4], eax
jmp 0x413ae6
mov eax, dword [esi + 0x16c]
sub esp, 4
mov dword [esp], eax
call fcn.00401b80
add esp, 4
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
mov ecx, 0xc
mul ecx
seto cl
add eax, 4
setb dl
mov ch, cl
or ch, dl
xor ch, 0xff
xor dl, 0xff
xor cl, 0xff
and dl, cl
or dl, ch
xor dl, 0xff
mov ecx, 0xffffffff
test dl, 1
jne 0x41268c
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408300
add esp, 4
mov ecx, dword [esi + 0x30]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0xac], eax
mov eax, 0x5429c090
cmp dword [esi + 0x30], 0
je 0x4126b8
mov eax, 0x137cf190
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0x1c759d8d
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x2b8], eax
mov dword [esi + 0x2b4], ecx
jmp 0x413ae6
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x16c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401b90
add esp, 8
mov dword [esi + 0x60], eax
mov ecx, dword [esi + 0x478]
mov eax, dword [esi + 0x32c]
mov cl, byte [ecx]
mov byte [esi + 0x250], cl
mov byte [eax], 0x1b
mov byte [eax + 1], 0x11
mov byte [eax + 2], 0xe6
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4127d7
mov ecx, dword [esi + 0x32c]
xor eax, eax
cmp eax, 7
jae 0x41285e
movzx ebx, byte [ecx + eax]
mov dword [esi + 0xd8], eax
mov edx, dword [esi + 0xd8]
add edx, 0x73a32129
mov dword [esi + 0x3d4], ecx
mov ecx, dword [esi + 0xd8]
add ecx, 0x29
and ecx, ebx
mov edi, ecx
and edi, 0xfd
mov eax, ecx
and eax, 2
xor eax, 2
imul eax, edi
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
add ecx, eax
add edx, ebx
mov ebx, edx
sub ebx, ecx
mov ecx, dword [esi + 0x3d4]
shl edx, 1
and edx, 2
xor ebx, 1
add ebx, 0x32
add ebx, edx
mov eax, dword [esi + 0xd8]
mov byte [ecx + eax], bl
add eax, 1
jmp 0x4127eb
sub esp, 8
mov eax, dword [esi + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018a0
add esp, 8
mov dword [esi + 0x3fc], eax
mov ecx, dword [esi + 0x47c]
mov eax, dword [esi + 0x330]
mov cl, byte [ecx]
mov byte [esi + 0x254], cl
mov byte [eax], 0x1d
mov byte [eax + 1], 0x67
mov byte [eax + 2], 0xfe
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x41289d
mov ecx, dword [esi + 0x330]
xor eax, eax
cmp eax, 8
jae 0x4128fd
movzx edx, byte [ecx + eax]
mov dword [esi + 0x3cc], ecx
mov ecx, eax
add ecx, 0xbb1f292a
mov edi, ecx
and edi, edx
shl edi, 1
mov ebx, ecx
add ebx, edx
xor ebx, 0xffffffff
add edi, ebx
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ebx, ecx
mov ecx, ebx
xor ecx, edx
xor ebx, 0xffffffff
and edx, ebx
shl edx, 1
sub edx, ecx
mov ecx, dword [esi + 0x3cc]
add dl, 0x2e
mov byte [ecx + eax], dl
add eax, 1
jmp 0x4128b1
sub esp, 8
mov eax, dword [esi + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018a0
add esp, 8
mov dword [esi + 0x3e4], eax
mov ecx, dword [esi + 0x480]
mov eax, dword [esi + 0x334]
mov cl, byte [ecx]
mov byte [esi + 0x258], cl
mov byte [eax], 0xbc
mov byte [eax + 1], 0x45
mov byte [eax + 2], 0x40
mov byte [eax + 3], 0x23
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x412940
mov eax, dword [esi + 0x334]
xor ecx, ecx
cmp ecx, 8
jae 0x412977
mov bl, byte [eax + ecx]
mov edi, ecx
shl edi, 1
and edi, 0x70
mov edx, ecx
xor edx, 0x38
add edx, edi
xor dl, bl
add dl, 0xe8
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x412954
sub esp, 8
mov ecx, dword [esi + 0x60]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004019d0
add esp, 8
cmp eax, 0
setg byte [esi + 0x1d]
mov ecx, dword [esi + 0x484]
mov eax, dword [esi + 0x338]
mov cl, byte [ecx]
mov byte [esi + 0x25c], cl
mov byte [eax], 0x11
mov byte [eax + 1], 0x20
mov byte [eax + 2], 0x2f
mov byte [eax + 3], 0xb9
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4129bb
mov edx, dword [esi + 0x338]
xor ecx, ecx
cmp ecx, 7
jae 0x412a1f
mov dword [esi + 0xc4], edx
mov eax, dword [esi + 0xc4]
movzx edx, byte [eax + ecx]
mov edi, ecx
add edi, 0x6bc4435f
xor edi, edx
mov edx, edi
shl edx, 1
and edx, 2
mov ebx, edi
and ebx, 1
or edi, 1
mov eax, 0xdb
sub eax, edi
or ebx, eax
xor ebx, 0xffffffff
add edx, ebx
mov eax, dword [esi + 0xc4]
mov byte [eax + ecx], dl
mov edx, dword [esi + 0xc4]
add ecx, 1
jmp 0x4129cf
sub esp, 8
mov eax, dword [esi + 0x60]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004019d0
add esp, 8
xor edx, edx
cmp eax, 0
setg dl
mov eax, dword [esi + 0xb0]
imul ecx, eax, 0xc
add ecx, dword [esi + 0xac]
sub esp, 0x10
mov eax, dword [esi + 0x3fc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x3e4]
mov dword [esp], eax
and edx, 1
mov dword [esp + 0xc], edx
xor eax, eax
mov dl, byte [esi + 0x1d]
mov al, dl
and eax, 1
mov dword [esp + 8], eax
call fcn.00418990
mov eax, dword [esi + 0xb0]
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esi + 0x4cc], eax
mov eax, dword [esi]
mov dword [eax], 0x13be6e
mov eax, dword [esi + 0x4cc]
mov dword [esi + 0x2b0], eax
jmp 0x413ae6
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x9c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xa4]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xa8]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x10]
sub esp, 4
mov dword [esp], 2
call fcn.00408f40
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x378]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.00418fe0
add esp, 0x10
mov ecx, dword [esi + 0x10]
call fcn.004099c0
cmp dword [esi + 0x14], 0
sete al
and al, 1
mov byte [esi + 0x22], al
mov eax, dword [esi]
mov dword [eax], 0x4707d4b6
jmp 0x413ae6
mov eax, dword [esi + 0x2bc]
mov dword [esi + 0x384], eax
mov eax, dword [esi]
mov dword [eax], 0x37e44409
jmp 0x413ae6
mov eax, 0x24ed1da8
test byte [esi + 0x23], 1
jne 0x412c2a
mov eax, 0xa5939ff3
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x170]
mov dword [esi + 0x2bc], eax
jmp 0x413ae6
mov eax, 0x71a010cb
cmp dword [esi + 0xa4], 0
je 0x412ccf
mov eax, 0x215c79e1
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov ecx, dword [esi + 0x10]
call fcn.00409020
mov eax, dword [esi]
mov dword [eax], 0x6b7efe1a
jmp 0x413ae6
mov eax, dword [esi + 0x184]
sub esp, 4
mov dword [esp], eax
call fcn.00401b80
add esp, 4
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x34]
mov ecx, 8
mul ecx
seto cl
add eax, 4
setb ch
mov dl, cl
xor dl, 0xff
mov dh, ch
xor dh, 0xff
and cl, 0xff
and ch, 0xff
or cl, 0
or ch, 0
xor cl, ch
or dl, dh
xor dl, 0xff
and dl, 0xff
or cl, dl
mov edx, 0xffffffff
test cl, 1
jne 0x41308c
mov edx, eax
sub esp, 4
mov dword [esp], edx
call fcn.00408300
add esp, 4
mov ecx, dword [esi + 0x34]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0xb4], eax
mov eax, 0x5ccf2e29
cmp dword [esi + 0x34], 0
je 0x4130b8
mov eax, 0xfe4da0f6
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x413ae6
mov edi, dword [esi + 0x2c0]
mov ecx, edi
call fcn.00418b40
add edi, 8
mov dword [esi + 0x388], edi
mov ecx, dword [esi + 0x388]
mov eax, 0x5ccf2e29
cmp ecx, dword [esi + 0x4d0]
je 0x413143
mov eax, 0xc37873e0
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x388]
mov dword [esi + 0x2c0], eax
jmp 0x413ae6
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x184]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401b90
add esp, 8
mov dword [esi + 0x38c], eax
mov ecx, dword [esi + 0x494]
mov eax, dword [esi + 0x344]
mov cl, byte [ecx]
mov byte [esi + 0x26c], cl
mov byte [eax], 0xcf
mov byte [eax + 1], 0xf9
mov byte [eax + 2], 0x6a
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x413203
mov eax, dword [esi + 0x344]
xor ecx, ecx
cmp ecx, 8
jae 0x413231
mov dl, byte [eax + ecx]
mov dh, cl
add dh, 0x17
xor dh, dl
add dh, 0x8d
mov byte [eax + ecx], dh
add ecx, 1
jmp 0x413217
mov ecx, dword [esi + 0x38c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x4d4], eax
mov eax, dword [esi]
mov dword [eax], 0xd97f0d4e
jmp 0x413ae6
mov ecx, dword [esi + 0x498]
mov eax, dword [esi + 0x348]
mov cl, byte [ecx]
mov byte [esi + 0x270], cl
mov byte [eax], 0x1d
mov byte [eax + 1], 0x67
mov byte [eax + 2], 0xfe
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 5
jne 0x413280
mov eax, dword [esi + 0x348]
xor ecx, ecx
cmp ecx, 5
jae 0x4132bd
movzx ebx, byte [eax + ecx]
mov edi, ecx
add edi, 0x2a
mov edx, 0xd5
sub edx, ecx
and edx, ebx
xor ebx, 0xffffffff
and edi, ebx
or edx, edi
add dl, 0x2e
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x413294
mov ecx, dword [esi + 0x38c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov ecx, dword [esi + 0xb8]
shl ecx, 3
add ecx, dword [esi + 0xb4]
mov edx, dword [esi + 0x4d4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00418b50
mov eax, dword [esi + 0xb8]
sub eax, 0xb770bb28
add eax, 1
add eax, 0xb770bb28
mov dword [esi + 0x4d8], eax
mov eax, dword [esi]
mov dword [eax], 0x57028508
mov eax, dword [esi + 0x4d8]
mov dword [esi + 0x2c4], eax
jmp 0x413ae6
mov eax, dword [esi + 0x38]
add eax, 0xfffffffc
mov dword [esi + 0x390], eax
mov eax, dword [esi + 0x390]
mov eax, dword [eax]
shl eax, 3
add eax, dword [esi + 0x38]
mov dword [esi + 0x394], eax
mov ecx, dword [esi + 0x394]
mov eax, 0x3b134636
cmp dword [esi + 0x38], ecx
je 0x4133db
mov eax, 0xe53260c9
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x394]
mov dword [esi + 0x2d0], eax
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xa1c02830
jmp 0x413ae6
mov eax, dword [esi + 0x17c]
sub esp, 4
mov dword [esp], eax
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x9eede3db
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xbae79256
jmp 0x413ae6
mov eax, dword [esi + 0x180]
sub esp, 4
mov dword [esp], eax
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x68ace221
jmp 0x413ae6
mov ecx, dword [esi + 0x80]
call fcn.00409020
mov eax, dword [esi]
mov dword [eax], 0xf12938d0
jmp 0x413ae6
mov eax, dword [esi]
mov dword [eax], 0xb2d0e8bc
jmp 0x413ae6
mov eax, dword [esi + 0x12c]
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
mov dword [esi + 0x4dc], ecx
mov eax, dword [esi]
mov dword [eax], 0x45e7ed21
mov eax, dword [esi + 0x4dc]
mov dword [esi + 0x290], eax
jmp 0x413ae6
mov dword [esp + 4], ecx
call fcn.00401900
fstp st(0)
add esp, 8
mov eax, dword [esi]
mov dword [eax], 0x78561b90
jmp 0x413ae6
js 0x413580
dec ebx
add eax, 0xe9240000
and al, 0xe9
mov word [edx], ds
pop edi
or al, byte [esi + 0x5efb34c8]
pushal
jo 0x413604
neg dword [eax]
cmp eax, 0x8b00535b
xchg byte [eax - 0x7d000000], cl
in al, dx
add al, 0x89
add al, 0x24
call fcn.00408310
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xcbb71cdd
jmp 0x413ae6
call 0xa5f54c6c
int 0xb1
not byte [eax + 0x7aa4a637]
fimul dword [edi]
add al, 3
jbe 0x413595
invalid
mov es, word [ebx + eax]
add byte [eax], al
mov eax, dword [esi + 0x44]
mov cl, byte [ecx]
mov byte [esi + 0x1f0], cl
mov byte [eax], 0xa3
mov byte [eax + 1], 9
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x413626
mov eax, dword [esi + 0x44]
mov dword [esi + 0xec], eax
xor ecx, ecx
cmp ecx, 7
jae 0x4136a9
mov eax, dword [esi + 0xec]
movzx edx, byte [eax + ecx]
mov ebx, ecx
shl ebx, 1
and ebx, 0xbd4a887c
mov edi, ecx
xor edi, 0x5ea5443e
mov eax, edi
and eax, ebx
shl eax, 1
xor edi, ebx
add edi, eax
mov eax, edi
add eax, 1
mov ebx, edi
xor ebx, 0xffffffff
or ebx, 0xa0958b6
add ebx, eax
xor edx, 0xf5f6a749
and edi, 0xf5f6a749
xor edi, 0xf5f6a749
or ebx, edi
mov eax, edx
and eax, ebx
shl eax, 1
add edx, ebx
sub edx, eax
add dl, 0xca
mov eax, dword [esi + 0xec]
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x41363d
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0xec]
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x288], eax
mov ecx, dword [esi + 0x308]
mov eax, dword [esi + 0x68]
mov cl, byte [ecx]
mov byte [esi + 0x1f8], cl
mov byte [eax], 0xf0
mov byte [eax + 1], 0x61
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4136e7
mov eax, dword [esi + 0x68]
mov dword [esi + 0xd4], eax
xor ecx, ecx
cmp ecx, 7
jae 0x41374b
mov eax, dword [esi + 0xd4]
movzx ebx, byte [eax + ecx]
mov edx, 0x67
sub edx, ecx
and edx, ebx
mov edi, ebx
shl edi, 1
xor edi, 0xffffffff
add edi, ebx
mov ebx, ecx
add ebx, 0x376dd998
and ebx, edi
mov edi, edx
xor edi, 0xffffffff
mov eax, ebx
and eax, edi
mov edi, ebx
xor edi, edx
add ebx, edi
sub ebx, eax
add bl, 8
mov eax, dword [esi + 0xd4]
mov byte [eax + ecx], bl
add ecx, 1
jmp 0x4136fe
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0xd4]
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov ecx, dword [esi + 0x30c]
mov eax, dword [esi + 0x6c]
mov cl, byte [ecx]
mov byte [esi + 0x200], cl
mov byte [eax], 0x1d
mov byte [eax + 1], 0x89
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x413783
mov eax, dword [esi + 0x6c]
xor ecx, ecx
cmp ecx, 6
jae 0x4137f9
movzx edi, byte [eax + ecx]
mov ebx, ecx
add ebx, 0x7211ede
mov edx, 0xf8dee121
sub edx, ecx
and edx, 0xea3738c1
and ebx, 0x15c8c73e
or edx, ebx
xor edx, edi
mov ebx, edx
shl ebx, 1
and ebx, 0x52
xor ebx, 2
mov edi, edx
and edi, 0xdc5a65a9
xor edi, 0xebb7bad7
and edx, 0x23a59a56
xor edx, 0xdddae7bf
and edx, edi
xor edx, 0xffffffff
add ebx, edx
shl edx, 1
and edx, 2
xor ebx, 1
add ebx, edx
mov byte [eax + ecx], bl
add ecx, 1
jmp 0x413794
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401970
add esp, 8
mov ecx, dword [esi + 0x310]
mov eax, dword [esi + 0x70]
mov cl, byte [ecx]
mov byte [esi + 0x208], cl
mov byte [eax], 0x96
mov byte [eax + 1], 0x1f
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 4
jne 0x41382b
mov eax, dword [esi + 0x70]
xor ecx, ecx
cmp ecx, 4
jae 0x413862
mov bl, byte [eax + ecx]
mov edi, ecx
xor edi, 0xfb
mov edx, ecx
shl edx, 1
and edx, 8
sub edx, edi
xor dl, bl
add dl, 0xe7
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x41383c
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov ecx, dword [esi + 0x314]
mov eax, dword [esi + 0x74]
mov cl, byte [ecx]
mov byte [esi + 0x210], cl
mov byte [eax], 0xbc
mov byte [eax + 1], 0x19
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x413894
mov eax, dword [esi + 0x74]
mov dword [esi + 0xe0], eax
xor ecx, ecx
cmp ecx, 7
jae 0x413907
mov eax, dword [esi + 0xe0]
movzx edi, byte [eax + ecx]
mov ebx, ecx
add ebx, 0x7a
mov edx, 0x85
sub edx, ecx
mov eax, 0x85
sub eax, ecx
and edx, eax
or edx, edi
mov eax, 5
sub eax, ecx
and eax, 0x44
and ebx, 0xbb
or eax, ebx
xor eax, 0xbb
and eax, edi
xor edx, 0xffffffff
or eax, edx
add al, 0x9e
mov edx, dword [esi + 0xe0]
mov byte [edx + ecx], al
mov eax, ecx
shl eax, 1
or eax, 1
sub eax, ecx
mov ecx, eax
jmp 0x4138ab
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0xe0]
mov dword [esp + 4], eax
call fcn.00401900
fstp st(0)
add esp, 8
mov ecx, dword [esi + 0x318]
mov eax, dword [esi + 0x78]
mov cl, byte [ecx]
mov byte [esi + 0x218], cl
mov byte [eax], 0x92
mov byte [eax + 1], 0xae
mov byte [eax + 2], 0x3e
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 5
jne 0x413945
mov eax, dword [esi + 0x78]
xor ecx, ecx
cmp ecx, 5
jae 0x41397c
mov bl, byte [eax + ecx]
mov edi, ecx
shl edi, 1
and edi, 0x94
mov edx, ecx
xor edx, 0x4a
add edx, edi
xor dl, bl
add dl, 0x8e
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x413956
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401900
fstp st(0)
add esp, 4
mov eax, dword [esi + 0x288]
mov dword [esp], eax
call fcn.004187f0
add esp, 4
mov ebx, eax
shl ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4139c0
push edi
ljmp 0xe9d5
adc eax, 0x1ad0d9e8
sub al, 0xd6
and dword [ebx + 0x3848e], ecx
add byte [ebx + 0x50e8f4c1], al
push eax
add byte [eax], al
mov eax, dword [esi]
mov dword [eax], 0x37e44409
jmp 0x413ae6
jmp 0x40ec53