Function at 0x40e9e0
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x718
mov esi, esp
mov al, byte [esi + 0x1dc]
mov byte [esi + 0x1e0], al
mov byte [esi + 0x440], 0xa3
mov byte [esi + 0x441], 0xc1
mov eax, 2
mov byte [esi + eax + 0x440], 0
add eax, 1
cmp eax, 8
jne 0x40ea10
xor ecx, ecx
cmp ecx, 8
jae 0x40eab0
movzx edx, byte [esi + ecx + 0x440]
mov dword [esi + 0x2fc], ecx
mov ecx, dword [esi + 0x2fc]
add ecx, 0x202138d0
mov ebx, ecx
and ebx, edx
shl ebx, 1
add ecx, edx
mov edi, ecx
sub edi, ebx
mov ebx, edi
add ebx, 0x5f59e3f0
mov edx, 0xa0a61c10
sub edx, edi
or edx, 1
add edx, ebx
mov eax, edx
and eax, 2
xor eax, 2
mov ebx, edx
and ebx, 0xfffffffd
imul ebx, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add edx, ebx
mov ebx, 0xa0a61c10
sub ebx, edi
and ebx, 0xfffffffe
or ecx, 0xfffffffe
xor ebx, ecx
mov ecx, dword [esi + 0x2fc]
mov eax, ebx
and eax, edx
shl eax, 1
xor ebx, edx
add ebx, eax
mov byte [esi + ecx + 0x440], bl
add ecx, 1
jmp 0x40ea22
sub esp, 8
lea eax, [esi + 0x440]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401ae0
add esp, 8
mov dword [esi + 0x78], eax
push eax
mov ebx, esp
push eax
mov edi, esp
mov dword [ebx], 0xce5a248d
mov dword [edi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 4], edi
mov eax, dword [ebx]
mov ecx, eax
sub ecx, 0x82e84b0d
je 0x413074
jmp 0x40eaf4
mov ecx, eax
sub ecx, 0x840264cd
je 0x411d26
jmp 0x40eb04
mov ecx, eax
sub ecx, 0x84855768
je 0x40f81f
jmp 0x40eb14
mov ecx, eax
sub ecx, 0x84fed6a9
je 0x411d47
jmp 0x40eb24
mov ecx, eax
sub ecx, 0x850fca72
je 0x412c29
jmp 0x40eb34
mov ecx, eax
sub ecx, 0x859e8cbd
je 0x412bf1
jmp 0x40eb44
mov ecx, eax
sub ecx, 0x86018b76
je 0x41328a
jmp 0x40eb54
mov ecx, eax
sub ecx, 0x86728c3a
je 0x412bbd
jmp 0x40eb64
mov ecx, eax
sub ecx, 0x86d647e8
je 0x412b54
jmp 0x40eb74
mov ecx, eax
sub ecx, 0x88c3551a
je 0x412ab9
jmp 0x40eb84
mov ecx, eax
sub ecx, 0x88c8c788
je 0x41075c
jmp 0x40eb94
mov ecx, eax
sub ecx, 0x8c76b33f
je 0x40f8b9
jmp 0x40eba4
mov ecx, eax
sub ecx, 0x8ca2f9f4
je 0x40ff6d
jmp 0x40ebb4
mov ecx, eax
sub ecx, 0x8d7dcad0
je 0x4137d6
jmp 0x40ebc4
mov ecx, eax
sub ecx, 0x8e7f1cfa
je 0x410578
jmp 0x40ebd4
mov ecx, eax
sub ecx, 0x8ed6743a
je 0x4115df
jmp 0x40ebe4
mov ecx, eax
sub ecx, 0x8ff08f56
je 0x41256f
jmp 0x40ebf4
mov ecx, eax
sub ecx, 0x8ff923b9
je 0x411e13
jmp 0x40ec04
mov ecx, eax
sub ecx, 0x8ffe1815
je 0x410e17
jmp 0x40ec14
mov ecx, eax
sub ecx, 0x902ee96a
je 0x41372d
jmp 0x40ec24
mov ecx, eax
sub ecx, 0x914bf655
je 0x40fac3
jmp 0x40ec34
mov ecx, eax
sub ecx, 0x9199638f
je 0x41375b
jmp 0x40ec44
mov ecx, eax
sub ecx, 0x922e6671
je 0x40f7fb
jmp 0x40ec54
mov ecx, eax
sub ecx, 0x95ca6703
je 0x41386d
jmp 0x40ec64
mov ecx, eax
sub ecx, 0x966d93a8
je 0x41140a
jmp 0x40ec74
mov ecx, eax
sub ecx, 0x96d6730f
je 0x412c1c
jmp 0x40ec84
mov ecx, eax
sub ecx, 0x9727b936
je 0x412da1
jmp 0x40ec94
mov ecx, eax
sub ecx, 0x97bab4ea
je 0x4106c6
jmp 0x40eca4
mov ecx, eax
sub ecx, 0x999f5bb8
je 0x40f9df
jmp 0x40ecb4
mov ecx, eax
sub ecx, 0x9b10cb54
je 0x4113f7
jmp 0x40ecc4
mov ecx, eax
sub ecx, 0x9b4eef70
je 0x41387f
jmp 0x40ecd4
mov ecx, eax
sub ecx, 0x9cc1fc6b
je 0x40fe18
jmp 0x40ece4
mov ecx, eax
sub ecx, 0x9d7e4547
je 0x41330b
jmp 0x40ecf4
mov ecx, eax
sub ecx, 0x9e5c8109
je 0x412a46
jmp 0x40ed04
mov ecx, eax
sub ecx, 0xa105d811
je 0x40f849
jmp 0x40ed14
mov ecx, eax
sub ecx, 0xa305ccf7
je 0x412a6c
jmp 0x40ed24
mov ecx, eax
sub ecx, 0xa3670985
je 0x413576
jmp 0x40ed34
mov ecx, eax
sub ecx, 0xa4a5a029
je 0x412a33
jmp 0x40ed44
mov ecx, eax
sub ecx, 0xa75b41e8
je 0x40fb4c
jmp 0x40ed54
mov ecx, eax
sub ecx, 0xaa5e862f
je 0x4118c8
jmp 0x40ed64
mov ecx, eax
sub ecx, 0xaa6a6b53
je 0x411784
jmp 0x40ed74
mov ecx, eax
sub ecx, 0xabb48ed4
je 0x411aab
jmp 0x40ed84
mov ecx, eax
sub ecx, 0xabb95cce
je 0x4109af
jmp 0x40ed94
mov ecx, eax
sub ecx, 0xadb0a0f9
je 0x411e65
jmp 0x40eda4
mov ecx, eax
sub ecx, 0xae57ac3c
je 0x4134dc
jmp 0x40edb4
mov ecx, eax
sub ecx, 0xb05f2ffd
je 0x412526
jmp 0x40edc4
mov ecx, eax
sub ecx, 0xb37c1224
je 0x411ff0
jmp 0x40edd4
mov ecx, eax
sub ecx, 0xb474de37
je 0x40f8ca
jmp 0x40ede4
mov ecx, eax
sub ecx, 0xb5807318
je 0x411b25
jmp 0x40edf4
mov ecx, eax
sub ecx, 0xb66a93c5
je 0x4129c2
jmp 0x40ee04
mov ecx, eax
sub ecx, 0xb9667ec4
je 0x413485
jmp 0x40ee14
mov ecx, eax
sub ecx, 0xba95065e
je 0x4119ef
jmp 0x40ee24
mov ecx, eax
sub ecx, 0xbbb77101
je 0x412b88
jmp 0x40ee34
mov ecx, eax
sub ecx, 0xbc92ce7a
je 0x4108d0
jmp 0x40ee44
mov ecx, eax
sub ecx, 0xbd5c150f
je 0x410a24
jmp 0x40ee54
mov ecx, eax
sub ecx, 0xc0afc63d
je 0x40f80c
jmp 0x40ee64
mov ecx, eax
sub ecx, 0xc1a69fd4
je 0x412bde
jmp 0x40ee74
mov ecx, eax
sub ecx, 0xc1af8071
je 0x4130e3
jmp 0x40ee84
mov ecx, eax
sub ecx, 0xc359dc42
je 0x411771
jmp 0x40ee94
mov ecx, eax
sub ecx, 0xcacc8201
je 0x411ae2
jmp 0x40eea4
mov ecx, eax
sub ecx, 0xcbf3fd35
je 0x41355b
jmp 0x40eeb4
mov ecx, eax
sub ecx, 0xce5a248d
je 0x40f7dc
jmp 0x40eec4
mov ecx, eax
sub ecx, 0xceff1067
je 0x412ac6
jmp 0x40eed4
mov ecx, eax
sub ecx, 0xcf1e2c41
je 0x41351d
mov eax, 0x922e6671
cmp dword [esi + 0x78], 0
je 0x40f7ec
mov eax, 0xc0afc63d
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xcf1e2c41
mov byte [esi + 0x13], 0
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x84855768
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0x5d65bf04
jmp 0x4138b8
mov eax, dword [esi + 0x30c]
mov dword [esi + 0xb4], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x24ff88eb
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xcf1e2c41
mov byte [esi + 0x13], 1
jmp 0x4138b8
mov eax, dword [esi + 0xb4]
mov ecx, dword [esi + 0x78]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402040
add esp, 8
mov dword [esi + 0xc], eax
mov al, byte [esi + 0x1d8]
mov byte [esi + 0x1e4], al
mov byte [esi + 0x438], 8
mov byte [esi + 0x439], 0x9f
mov eax, 2
mov byte [esi + eax + 0x438], 0
add eax, 1
cmp eax, 8
jne 0x40f907
xor eax, eax
cmp eax, 8
jae 0x40f94b
movzx edx, byte [esi + eax + 0x438]
mov ecx, eax
add ecx, 0xe5
and ecx, edx
mov edi, eax
add edi, 0xe5
or edi, edx
xor ecx, edi
add cl, 0x87
mov byte [esi + eax + 0x438], cl
add eax, 1
jmp 0x40f919
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x438]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f10
add esp, 0xc
cmp eax, 0
setne al
and al, 1
mov byte [esi + 0x1c], al
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x25246ad2
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov al, byte [esi + 0x1d4]
mov byte [esi + 0x1e8], al
mov byte [esi + 0x430], 0xcc
mov byte [esi + 0x431], 0x31
mov eax, 2
mov byte [esi + eax + 0x430], 0
add eax, 1
cmp eax, 6
jne 0x40f9fe
xor eax, eax
cmp eax, 6
jae 0x40fa6a
movzx edx, byte [esi + eax + 0x430]
mov edi, eax
shl edi, 1
and edi, 0x21a438e8
mov ecx, eax
xor ecx, 0x10d21c74
add ecx, edi
xor ecx, edx
add ecx, 0x16f82ecb
mov edx, ecx
shl edx, 1
and edx, 0xe2
xor ecx, 0xf1
add ecx, edx
mov byte [esi + eax + 0x430], cl
mov ecx, eax
xor ecx, 0x7ffffffe
mov edx, eax
or edx, 1
and edx, ecx
shl edx, 1
xor eax, 1
add eax, edx
jmp 0x40fa10
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x430]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019b0
add esp, 8
fnstcw word [esi + 0x72]
movzx eax, word [esi + 0x72]
or eax, 0xc00
mov word [esi + 0x2b2], ax
fldcw word [esi + 0x2b2]
fistp dword [esi + 0x484]
fldcw word [esi + 0x72]
mov eax, dword [esi + 0x484]
mov dword [esi + 0x54], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x914bf655
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0x54430a27
jmp 0x4138b8
mov eax, 0x1e31370a
cmp dword [esi + 0x54], 0
je 0x40fb5c
mov eax, 0xf28f3b94
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov al, byte [esi + 0x1b8]
mov byte [esi + 0x1fc], al
mov byte [esi + 0x60], 0x80
mov byte [esi + 0x61], 0x2b
mov eax, 2
mov byte [esi + eax + 0x60], 0
add eax, 1
cmp eax, 4
jne 0x40fe31
xor eax, eax
cmp eax, 4
jae 0x40fe72
movzx edx, byte [esi + eax + 0x60]
mov ecx, eax
add ecx, 0x41f5f8c7
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x38
mov edi, ecx
shl edi, 1
and edi, 0x38
add ecx, edx
sub ecx, edi
add cl, 0x1d
mov byte [esi + eax + 0x60], cl
add eax, 1
jmp 0x40fe40
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x60]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f10
add esp, 0xc
mov ecx, 0xe9dc5c9f
cmp eax, 0
jne 0x40fea1
mov ecx, 0x3062cc77
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], ecx
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xf28f3b94
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xe412f3d8
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x25341381
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0xc4]
sub esp, 4
mov dword [esp], eax
call fcn.00418200
add esp, 4
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
mov dword [esi + 0x354], ecx
mov eax, dword [esi + 0x354]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41079c
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004087e0
add esp, 4
mov dword [esi + 0xc8], eax
mov eax, dword [edi]
mov dword [eax], 0x66fb5e11
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x4d484af
mov eax, dword [esi + 0x4a0]
mov dword [esi + 0x310], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x198f43bf
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xf28f3b94
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov al, byte [esi + 0x180]
mov byte [esi + 0x234], al
mov byte [esi + 0x2e4], 0xe2
mov byte [esi + 0x2e5], 0xf6
mov byte [esi + 0x2e6], 0x56
mov eax, 3
mov byte [esi + eax + 0x2e4], 0
add eax, 1
cmp eax, 5
jne 0x410e3d
xor eax, eax
cmp eax, 5
jae 0x410ec5
movzx edi, byte [esi + eax + 0x2e4]
mov dword [esi + 0x460], edi
xor edi, 0xffffffff
mov edx, eax
add edx, 0xc98b0eef
mov ecx, 0x11
sub ecx, eax
or ecx, edi
add ecx, edx
mov edx, 0x11
sub edx, eax
and edx, dword [esi + 0x460]
mov edi, edx
xor edi, 0xffffffff
mov dword [esi + 0x2f4], ecx
and dword [esi + 0x2f4], edi
mov edi, ecx
xor edi, edx
add ecx, edi
sub ecx, dword [esi + 0x2f4]
mov edx, ecx
and edx, 1
xor edx, 1
mov edi, ecx
or edi, 0xfe
add ecx, 0x5b
add edi, ecx
add edx, edi
mov byte [esi + eax + 0x2e4], dl
add eax, 1
jmp 0x410e4f
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x2e4]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f10
add esp, 0xc
cmp eax, 0
setne cl
xor cl, 0xff
mov eax, 0xf28f3b94
test cl, 1
mov edi, dword [esi + 4]
jne 0x410f03
mov eax, 0x8d5b73e
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xc94e627
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov dword [esi + 0x164], 0
mov eax, dword [esi + 0x4d0]
mov dword [esi + 0x46c], eax
mov al, byte [esi + 0x250]
mov byte [esi + 0x2a8], al
mov byte [esi + 0x254], 0x97
mov byte [esi + 0x255], 0x96
mov byte [esi + 0x256], 0x95
mov byte [esi + 0x257], 0x94
mov eax, 4
mov byte [esi + eax + 0x254], 0
add eax, 1
cmp eax, 6
jne 0x41144d
xor eax, eax
cmp eax, 6
jae 0x411495
movzx edx, byte [esi + eax + 0x254]
mov ecx, eax
add ecx, 0xdc
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0x23
sub edi, eax
and edi, edx
or ecx, edi
add cl, 0xb4
mov byte [esi + eax + 0x254], cl
add eax, 1
jmp 0x41145f
mov eax, dword [esi + 0x254]
mov dword [esi + 0xb0], eax
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44de2c]
jb 0x4114b5
jmp 0x411546
mov edx, dword [0x44de30]
cmp dword [edx + edi*8], 0xfc36c0a1
sete bl
xor ecx, ecx
test bl, 1
jne 0x4114ce
jmp 0x411531
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0xb0]
je 0x411531
mov eax, dword [0x44de34]
xor ecx, ecx
lea ecx, [esi + 0x164]
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x46c]
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.0043f290
add esp, 0x20
mov ecx, 1
test bl, 1
je 0x41153b
mov ebx, dword [esi + 8]
jmp 0x411546
add edi, 1
mov ebx, dword [esi + 8]
jmp 0x4114a3
cmp ecx, 2
je 0x411551
mov dword [esi + 0xb0], eax
mov al, byte [esi + 0x158]
mov byte [esi + 0x25c], al
mov byte [esi + 0x15c], 0xc8
mov byte [esi + 0x15d], 0xcf
mov byte [esi + 0x15e], 0xce
mov byte [esi + 0x15f], 0x91
mov eax, 4
mov byte [esi + eax + 0x15c], 0
add eax, 1
cmp eax, 6
jne 0x41157e
xor eax, eax
cmp eax, 6
jae 0x4115bb
mov dl, byte [esi + eax + 0x15c]
mov edi, eax
shl edi, 1
and edi, 0x5a
mov ecx, eax
xor ecx, 0x2d
add ecx, edi
xor cl, dl
add cl, 0x1f
mov byte [esi + eax + 0x15c], cl
add eax, 1
jmp 0x411590
mov ecx, dword [esi + 0x15c]
mov eax, 0x8ed6743a
cmp dword [esi + 0xb0], ecx
mov edi, dword [esi + 4]
je 0x4115d6
mov eax, 0xd4f727a8
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x4138b8
mov eax, dword [esi + 0x164]
add eax, 2
sub esp, 4
mov dword [esp], eax
call fcn.0043cca0
add esp, 4
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x164]
add eax, 2
mov dword [esi + 0x478], eax
mov eax, dword [esi + 0x4d0]
mov dword [esi + 0x474], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x470], eax
mov al, byte [esi + 0x260]
mov byte [esi + 0x2a4], al
mov byte [esi + 0x264], 0x97
mov byte [esi + 0x265], 0x96
mov byte [esi + 0x266], 0x95
mov byte [esi + 0x267], 0x94
mov eax, 4
mov byte [esi + eax + 0x264], 0
add eax, 1
cmp eax, 6
jne 0x411650
xor eax, eax
cmp eax, 6
jae 0x411698
movzx edx, byte [esi + eax + 0x264]
mov ecx, eax
add ecx, 0xdc
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0x23
sub edi, eax
and edi, edx
or ecx, edi
add cl, 0xb4
mov byte [esi + eax + 0x264], cl
add eax, 1
jmp 0x411662
mov eax, dword [esi + 0x264]
mov dword [esi + 0x304], eax
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44de2c]
jb 0x4116b8
jmp 0x41174b
mov ecx, dword [0x44de30]
cmp dword [ecx + edi*8], 0xfc36c0a1
sete dl
mov byte [esi + 0x18], dl
test dl, 1
jne 0x4116d2
jmp 0x411739
mov edx, dword [ecx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0x304]
je 0x41173b
mov eax, dword [0x44de34]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x474]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esi + 0x470]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x478]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.0043f290
add esp, 0x20
mov ecx, 1
jmp 0x41173b
xor ecx, ecx
test byte [esi + 0x18], 1
je 0x411743
jmp 0x41174b
add edi, 1
jmp 0x4116a6
cmp ecx, 2
mov edi, dword [esi + 4]
jne 0x411759
mov eax, dword [esi + 0x304]
mov ecx, 0xc359dc42
cmp eax, 0
jge 0x411768
mov ecx, 0x8ff923b9
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xaa6a6b53
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0x84]
sub esp, 4
mov dword [esp], eax
call fcn.00418200
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 0x4117bf
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004087e0
add esp, 4
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xd0]
mov ecx, dword [esi + 0x84]
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.0040ada0
add esp, 0x10
mov eax, dword [esi + 0x88]
add eax, 4
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x8c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
movzx ecx, word [ecx]
shr ecx, 1
sub ecx, 1
shl ecx, 1
add eax, ecx
mov dword [esi + 0x364], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x6efe22b1
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, 0x721c0194
test byte [esi + 0x23], 1
jne 0x4118d8
mov eax, 0xfad3c289
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0xd0]
sub esp, 4
mov dword [esp], eax
call fcn.004087f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x3b04405
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0x35c]
sub esp, 4
mov dword [esp], eax
call fcn.00418200
add esp, 4
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov dword [esi + 0x368], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xcacc8201
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0x368]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411afe
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004087e0
add esp, 4
mov dword [esi + 0xd8], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xb5807318
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0x368]
mov edx, dword [esi + 0x35c]
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.0040ada0
add esp, 0x10
lea ecx, [esi + 0x600]
sub esp, 4
mov dword [esp], 1
call fcn.00409300
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xe383ab2
mov dword [esi + 0x31c], 0
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0xe4]
sub esp, 4
mov dword [esp], eax
call fcn.004087f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x84fed6a9
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xdfd2898
jmp 0x4138b8
mov eax, dword [esi + 0x88]
sub esp, 4
mov dword [esp], eax
call fcn.0043cd10
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xd4f727a8
jmp 0x4138b8
mov al, byte [esi + 0x154]
mov byte [esi + 0x26c], al
mov byte [esi + 0x3b8], 0x1c
mov byte [esi + 0x3b9], 0x8f
mov eax, 2
mov byte [esi + eax + 0x3b8], 0
add eax, 1
cmp eax, 5
jne 0x411e84
xor ebx, ebx
cmp ebx, 5
jae 0x411ee3
movzx edx, byte [esi + ebx + 0x3b8]
mov ecx, ebx
add ecx, 0x3f975f5d
xor ecx, edx
mov edx, ecx
and edx, 0x2c
mov eax, ecx
and eax, 2
xor eax, 2
mov edi, ecx
and edi, 0x2c
imul edi, eax
mov eax, ecx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
xor ecx, 0x2e
add ecx, edx
add cl, 1
mov byte [esi + ebx + 0x3b8], cl
add ebx, 1
jmp 0x411e96
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x3b8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0xe8], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x575e09c4
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0xe8]
sub esp, 4
mov dword [esp], eax
call fcn.00418200
add esp, 4
mov edi, eax
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412021
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004087e0
add esp, 4
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x98]
mov ecx, dword [esi + 0xe8]
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.0040ada0
add esp, 0x10
mov eax, dword [esi + 0xec]
sub esp, 4
mov dword [esp], eax
call fcn.00418200
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 0x412092
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004087e0
add esp, 4
mov dword [esi + 0xf0], eax
mov eax, dword [esi + 0xf0]
mov ecx, dword [esi + 0xec]
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.0040ada0
add esp, 0x10
mov al, byte [esi + 0x14c]
mov byte [esi + 0x274], al
mov byte [esi + 0x3a8], 0xb6
mov byte [esi + 0x3a9], 0x1b
mov eax, 2
mov byte [esi + eax + 0x3a8], 0
add eax, 1
cmp eax, 8
jne 0x4120f1
xor edx, edx
cmp edx, 8
jae 0x412161
movzx ebx, byte [esi + edx + 0x3a8]
mov dword [esi + 0x464], ebx
mov edi, edx
add edi, 0x7b
mov ecx, edx
add ecx, 0x7b
or edi, ecx
xor edi, 0xffffffff
or ebx, edi
mov edi, 0x84
sub edi, edx
mov eax, 0x84
sub eax, edx
mov ecx, 0x84
sub ecx, edx
and eax, ecx
or edi, eax
and edi, dword [esi + 0x464]
mov eax, edi
shl eax, 1
xor eax, 0xffffffff
add edi, eax
and ebx, edi
mov al, 0x98
sub al, bl
mov byte [esi + edx + 0x3a8], al
add edx, 1
jmp 0x412103
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x3a8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0xf4], eax
mov eax, 0x5aaca7ce
cmp dword [esi + 0xf4], 0
jne 0x412195
mov eax, 0x5ad0d165
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov dword [esi + 0x320], 0
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov edi, dword [esi + 0x328]
mov ecx, edi
call fcn.00418360
add edi, 0xc
mov dword [esi + 0x378], edi
mov ecx, dword [esi + 0x378]
mov eax, 0x8ff08f56
cmp ecx, dword [esi + 0x4bc]
je 0x412554
mov eax, 0xb05f2ffd
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x378]
mov dword [esi + 0x328], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0x317e985b
mov dword [esi + 0x32c], 0
jmp 0x4138b8
mov eax, dword [esi + 0x338]
add eax, 0xfffffff4
mov dword [esi + 0x104], eax
mov ecx, dword [esi + 0x104]
call fcn.004184e0
mov ecx, dword [esi + 0x104]
mov eax, 0x27ad29b5
cmp ecx, dword [esi + 0x2c]
je 0x4129f1
mov eax, 0xb66a93c5
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x104]
mov dword [esi + 0x338], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x9e5c8109
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xf29ac1d3
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x211c284a
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xceff1067
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x3f0a8d99
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xd4e4c98e
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x5af32f23
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0xfc]
sub esp, 4
mov dword [esp], eax
call fcn.004087f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xc1a69fd4
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x859e8cbd
mov ebx, dword [esi + 8]
jmp 0x4138b8
lea ecx, [esi + 0x578]
call fcn.004093e0
mov eax, dword [edi]
mov dword [eax], 0x67544cc0
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xf28f3b94
jmp 0x4138b8
mov al, byte [esi + 0x130]
mov byte [esi + 0x290], al
mov byte [esi + 0x398], 0x1c
mov byte [esi + 0x399], 0x8f
mov eax, 2
mov byte [esi + eax + 0x398], 0
add eax, 1
cmp eax, 6
jne 0x412c48
xor eax, eax
cmp eax, 6
jae 0x412c8f
movzx edx, byte [esi + eax + 0x398]
mov ecx, eax
add ecx, 0xc8e7a5dd
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0xae
add ecx, edx
mov byte [esi + eax + 0x398], cl
add eax, 1
jmp 0x412c5a
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x398]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0x108], eax
mov al, byte [esi + 0x12c]
mov byte [esi + 0x294], al
mov byte [esi + 0x390], 0x7a
mov byte [esi + 0x391], 1
mov eax, 2
mov byte [esi + eax + 0x390], 0
add eax, 1
cmp eax, 8
jne 0x412ccf
xor eax, eax
cmp eax, 8
jae 0x412d4d
movzx ebx, byte [esi + eax + 0x390]
mov edi, eax
add edi, 0x74c75580
mov edx, 0xb38aa7f
sub edx, eax
and edx, 0x60c85d68
and edi, 0x9f37a297
or edx, edi
mov edi, ebx
xor edi, 0x97
mov ecx, ebx
xor ecx, 0x97
and edi, ecx
xor edi, 0xffffffff
mov ecx, edx
and ecx, edi
xor edx, 0xffffffff
xor ebx, 0x97
and ebx, edx
or ebx, ecx
mov cl, 0x7f
sub cl, bl
mov ebx, dword [esi + 8]
mov byte [esi + eax + 0x390], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412ce1
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x390]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401880
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, 0x9727b936
test cl, 1
mov edi, dword [esi + 4]
jne 0x412d98
mov eax, 0xdf959f1
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x6c5d33c2
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0x48f398b
mov dword [esi + 0x340], 0
jmp 0x4138b8
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0x118]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402040
add esp, 8
mov dword [esi + 0x308], eax
mov al, byte [esi + 0x124]
mov byte [esi + 0x29c], al
mov byte [esi + 0x2bc], 0xbd
mov byte [esi + 0x2bd], 0xab
mov byte [esi + 0x2be], 0x1e
mov eax, 3
mov byte [esi + eax + 0x2bc], 0
add eax, 1
cmp eax, 8
jne 0x41312d
xor eax, eax
cmp eax, 8
jae 0x4131a6
movzx ecx, byte [esi + eax + 0x2bc]
mov edi, eax
add edi, 0x559d453a
xor edi, ecx
mov edx, edi
shl edx, 1
or edx, 0xfd
mov ecx, edi
and ecx, 1
mov ebx, 0x22
sub ebx, edi
and ebx, 0xfe
or ecx, ebx
xor ecx, 1
add ecx, edx
mov dl, 0xfe
sub dl, cl
mov byte [esi + eax + 0x2bc], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 0x12019d9
mov edx, eax
add edx, ecx
and eax, 1
or edx, 1
add edx, eax
add edx, 0xfedfe627
mov eax, edx
jmp 0x41313f
lea eax, [esi + 0x2bc]
sub esp, 8
mov ecx, dword [esi + 0x308]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
add esp, 8
mov edi, eax
mov al, byte [esi + 0x120]
mov byte [esi + 0x2a0], al
mov byte [esi + 0x2b4], 0x45
mov byte [esi + 0x2b5], 0x6b
mov byte [esi + 0x2b6], 0xe2
mov eax, 3
mov byte [esi + eax + 0x2b4], 0
add eax, 1
cmp eax, 6
jne 0x4131ec
xor eax, eax
cmp eax, 6
jae 0x413220
mov cl, byte [esi + eax + 0x2b4]
mov dl, al
add dl, 0xd8
xor dl, cl
add dl, 0xc8
mov byte [esi + eax + 0x2b4], dl
add eax, 1
jmp 0x4131fe
lea eax, [esi + 0x2b4]
sub esp, 8
mov ecx, dword [esi + 0x308]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
add esp, 8
mov ecx, dword [esi + 0xac]
shl ecx, 3
add ecx, dword [esi + 0xa8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00418520
mov eax, dword [esi + 0xac]
sub eax, 0xffffffff
mov dword [esi + 0x4c8], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x48f398b
mov eax, dword [esi + 0x4c8]
mov dword [esi + 0x340], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0x344]
mov edi, dword [esi + 0x348]
mov dword [esi + 0x34], eax
lea ecx, [esi + 0x4f0]
sub esp, 4
mov dword [esp], 3
call fcn.00409300
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x114]
mov edx, dword [esi + 0x110]
lea ebx, [esi + 0x4f0]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
call fcn.00421320
add esp, 0x14
lea ecx, [esi + 0x4f0]
call fcn.00409d30
mov eax, 0x453ac14d
cmp dword [esi + 0x34], 0
je 0x4132fc
mov eax, 0x9d7e4547
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xc7019ad
mov ebx, dword [esi + 8]
jmp 0x4138b8
lea ecx, [esi + 0x4f0]
call fcn.004093e0
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xb1d5454
mov ebx, dword [esi + 8]
jmp 0x4138b8
mov eax, dword [esi + 0xb4]
add eax, 1
mov dword [esi + 0x4cc], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x11acc52e
mov ebx, dword [esi + 8]
jmp 0x4138b8
and eax, 0xf14569f8
sbb eax, dword [ecx]
dec edi
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x84855768
mov ebx, dword [esi + 8]
jmp 0x4138b8
add bl, ch
push esp
sub ecx, dword [ebx - 0x137c87ba]
add al, 0x89
add al, 0x24
call fcn.00402030
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x24ff88eb
mov ebx, dword [esi + 8]
jmp 0x4138b8
std
arpl word [edx - 0x73c66f63], dx
jnp 0x8e17319e
mov ss, eax
add al, 0
add byte [ebx + 0x4c704ec], al
and al, 0
adc byte [eax], al
add al, ch
mov byte [0x8b000298], al
pop es
mov dword [eax], 0x325fdcf9
jmp 0x4138b8
mov eax, dword [esi + 0x84]
sub esp, 4
mov dword [esp], eax
call fcn.00418200
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 0x413792
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004087e0
add esp, 4
mov ecx, dword [esi + 0x84]
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.0040ada0
add esp, 0x10
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xaa6a6b53
jmp 0x4138b8
mov eax, dword [edi]
mov dword [eax], 0xf29ac1d3
jmp 0x4138b8
pop ss
imul edx, dword [edi - 0x73d21ab3], 0xffffffe7
mov eax, dword [edi]
mov dword [eax], 0xc7019ad
jmp 0x4138b8
push esp
jg 0x4138d2
test esp, esp
pop esp
sub edi, ebp
and byte [ecx], bh
sub si, sp
int 0x8d
invalid
jmp 0x40eae2
mov dword [esp], eax
call fcn.00401bf0
mov dword [esp + 0x160], eax
mov dword [esp + 0x2f0], 0xbbdd2ddc
lea eax, [esp + 0x2f0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2f0]
mov ecx, eax
sub ecx, 0x8135580e
je 0x415050
jmp 0x41390e
mov ecx, eax
sub ecx, 0x87fb00c6
je 0x41553f
jmp 0x41391e
mov ecx, eax
sub ecx, 0x88198f79
je 0x415ba4
jmp 0x41392e
mov ecx, eax
sub ecx, 0x891bc3ee
je 0x416127
jmp 0x41393e
mov ecx, eax
sub ecx, 0x89636534
je 0x41722a
jmp 0x41394e
mov ecx, eax
sub ecx, 0x89c15321
je 0x41616f
jmp 0x41395e
mov ecx, eax
sub ecx, 0x8a4263a0
je 0x415097
jmp 0x41396e
mov ecx, eax
sub ecx, 0x8a430984
je 0x414fd9
jmp 0x41397e
mov ecx, eax
sub ecx, 0x8b46a011
je 0x415f05
jmp 0x41398e
mov ecx, eax
sub ecx, 0x8cc7440a
je 0x416bec
jmp 0x41399e
mov ecx, eax
sub ecx, 0x8d39fb25
je 0x415b87
jmp 0x4139ae
mov ecx, eax
sub ecx, 0x8d736f3a
je 0x4147fd
jmp 0x4139be
mov ecx, eax
sub ecx, 0x8df58f9b
je 0x415f2d
jmp 0x4139ce
mov ecx, eax
sub ecx, 0x8f882ea4
je 0x417bc7
jmp 0x4139de
mov ecx, eax
sub ecx, 0x90749a61
je 0x41481c
jmp 0x4139ee
mov ecx, eax
sub ecx, 0x92f5eb8a
je 0x415570
jmp 0x4139fe
mov ecx, eax
sub ecx, 0x977c8638
je 0x417552
jmp 0x413a0e
mov ecx, eax
sub ecx, 0x98f41106
je 0x4153e4
jmp 0x413a1e
mov ecx, eax
sub ecx, 0x9b249f37
je 0x414fbb
jmp 0x413a2e
mov ecx, eax
sub ecx, 0x9b488a70
je 0x414f76
jmp 0x413a3e
mov ecx, eax
sub ecx, 0x9c197f5d
je 0x417173
jmp 0x413a4e
mov ecx, eax
sub ecx, 0x9c9ca67f
je 0x41519c
jmp 0x413a5e
mov ecx, eax
sub ecx, 0x9e47402d
je 0x414b82
jmp 0x413a6e
mov ecx, eax
sub ecx, 0x9fa68005
je 0x4159ad
jmp 0x413a7e
mov ecx, eax
sub ecx, 0xa0037fbd
je 0x4167ea
jmp 0x413a8e
mov ecx, eax
sub ecx, 0xa0264c42
je 0x417524
jmp 0x413a9e
mov ecx, eax
sub ecx, 0xa1239c59
je 0x4158cf
jmp 0x413aae
mov ecx, eax
sub ecx, 0xa29bae15
je 0x41459d
jmp 0x413abe
mov ecx, eax
sub ecx, 0xa38c6819
je 0x416e45
jmp 0x413ace
mov ecx, eax
sub ecx, 0xa39ade95
je 0x417249
jmp 0x413ade
mov ecx, eax
sub ecx, 0xa75afca3
je 0x415702
jmp 0x413aee
mov ecx, eax
sub ecx, 0xa83270aa
je 0x4156b4
jmp 0x413afe
mov ecx, eax
sub ecx, 0xa8d612cc
je 0x417439
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x160]
mov dword [esp], eax
call fcn.00402030
mov ecx, 0x5875127b
cmp dword [esp + 0x164], eax
jb 0x4145cd
mov ecx, 0xe57d2a9c
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
jmp 0x4181f6
mov eax, 0x90749a61
test byte [esp + 0x8d], 1
jne 0x414811
mov eax, 0x5ea3bc95
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x4181f6
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x208], al
mov byte [esp + 0x104], 0x8f
mov byte [esp + 0x105], 0x2b
mov eax, 2
mov byte [esp + eax + 0x104], 0
add eax, 1
cmp eax, 4
jne 0x41483f
xor eax, eax
cmp eax, 4
jae 0x4148de
movzx ecx, byte [esp + eax + 0x104]
mov edx, eax
xor edx, 0xea0e3e78
mov esi, eax
or esi, 0x15f1c187
and esi, edx
mov edi, esi
and edi, 0xfffffffd
mov edx, eax
and edx, 2
xor edx, 2
imul edx, edi
mov edi, eax
and edi, 2
or esi, 2
imul esi, edi
add esi, edx
mov edx, eax
xor edx, 0x15f1c187
add edx, esi
mov edi, ecx
xor edi, 0xffffffff
mov esi, edx
or esi, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, esi
shl ecx, 1
xor ecx, 0xffffffff
add esi, ecx
or edx, esi
mov ecx, edx
shl ecx, 1
and ecx, 0xb8
xor edx, 0x5c
add edx, ecx
add dl, 1
mov byte [esp + eax + 0x104], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x414851
call fcn.00418650
call fcn.00418650
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x104]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00401f10
sub eax, 1
mov cl, 1
sbb cl, 0xff
mov eax, 0x7a41e2ad
test cl, 1
jne 0x41491e
mov eax, 0x2cfe876f
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x4181f6
mov eax, 0xc021e21f
test byte [esp + 0x8e], 1
jne 0x414b96
mov eax, 0xaedcbdec
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0x2803560
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0xd3f6fef
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0x8135580e
mov eax, dword [esp + 0x60]
mov dword [esp + 0x2fc], 4
mov dword [esp + 0x2f8], eax
jmp 0x4181f6
mov eax, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x2fc]
mov dword [esp + 0x390], eax
mov dword [esp + 0x394], ecx
mov eax, dword [esp + 0x28]
mov dword [eax], 0x8a4263a0
mov eax, dword [esp + 0x394]
mov ecx, dword [esp + 0x390]
mov dword [esp + 0x304], eax
mov dword [esp + 0x300], ecx
jmp 0x4181f6
mov eax, dword [esp + 0x300]
mov ecx, dword [esp + 0x304]
mov dword [esp + 0x338], eax
mov dword [esp + 0x33c], ecx
mov eax, 0xce2b3be1
cmp dword [esp + 0x33c], 0
je 0x4150c7
mov eax, 0x9fa68005
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x338]
mov edx, dword [esp + 0x338]
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], ecx
mov dword [esp + 0x310], edx
jmp 0x4181f6
mov eax, dword [esp + 0x16c]
mov word [eax], 0
mov al, byte [esp + 0x198]
mov byte [esp + 0x230], al
mov byte [esp + 0x19c], 0xdd
mov byte [esp + 0x19d], 0x39
mov byte [esp + 0x19e], 0x8a
mov byte [esp + 0x19f], 0x3f
mov byte [esp + 0x1a0], 0xf9
mov byte [esp + 0x1a1], 0x3d
mov byte [esp + 0x1a2], 0xef
mov byte [esp + 0x1a3], 0x23
mov byte [esp + 0x1a4], 0x90
mov byte [esp + 0x1a5], 0x21
mov byte [esp + 0x1a6], 0xc3
mov byte [esp + 0x1a7], 0x27
mov byte [esp + 0x1a8], 0x98
mov byte [esp + 0x1a9], 0x25
mov byte [esp + 0x1aa], 0x2a
mov byte [esp + 0x1ab], 0x2b
mov eax, 0x10
mov byte [esp + eax + 0x19c], 0
add eax, 1
cmp eax, 0x12
jne 0x41523b
xor eax, eax
cmp eax, 0x12
jae 0x4152da
movzx ecx, byte [esp + eax + 0x19c]
mov esi, eax
shl esi, 1
and esi, 0xbde6fa94
mov edi, eax
shl edi, 1
and edi, 0xbde6fa94
add edi, 0xa10c82b6
mov edx, eax
sub edx, edi
add edx, esi
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
mov edi, edx
add edi, esi
mov ebx, edx
and ebx, 0x54
and edi, 0xab
or ebx, edi
mov esi, edx
xor esi, ebx
xor esi, 0xab
mov edi, edx
xor edi, 0xffffffff
or esi, edi
and esi, ecx
xor ecx, 0xffffffff
and edx, ecx
or edx, esi
add dl, 0x8e
mov byte [esp + eax + 0x19c], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
or edx, 0xfffffffe
xor eax, 0xffffffff
or eax, 1
and edx, eax
xor edx, 0xffffffff
add ecx, edx
mov eax, ecx
jmp 0x41524d
lea eax, [esp + 0x49c]
lea ecx, [esp + 0x19c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1f0
lea ecx, [esp + 0x4fc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1f0
lea ecx, [esp + 0x49c]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x344], eax
mov eax, dword [0x44de28]
mov ecx, dword [esp + 0x344]
xor edx, edx
lea edx, [esp + 0x49c]
lea esi, [esp + 0x194]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
call eax
sub esp, 0x18
mov cl, byte [esp + 0x188]
mov byte [esp + 0x234], cl
mov byte [esp + 0x18c], 0xe1
mov byte [esp + 0x18d], 0xdb
mov byte [esp + 0x18e], 0xda
mov byte [esp + 0x18f], 0x19
mov ecx, 4
mov byte [esp + ecx + 0x18c], 0
add ecx, 1
cmp ecx, 5
jne 0x415390
xor ecx, ecx
cmp ecx, 5
jae 0x4153c4
mov dl, byte [esp + ecx + 0x18c]
mov dh, cl
add dh, 0xcf
xor dh, dl
add dh, 0xf5
mov byte [esp + ecx + 0x18c], dh
add ecx, 1
jmp 0x4153a2
mov edx, dword [esp + 0x18c]
mov ecx, 0x7955376d
cmp eax, edx
jne 0x4153d9
mov ecx, 0x12476dd4
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
jmp 0x4181f6
call fcn.00408f50
mov ecx, 0x24
cdq
idiv ecx
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, dword [esp + 0x16c]
add ecx, 2
mov dword [esp + 0x3a0], ecx
mov ecx, dword [esp + 0x16c]
mov word [ecx], ax
mov eax, dword [esp + 0x340]
add eax, 1
mov dword [esp + 0x3a4], eax
mov eax, dword [esp + 0x28]
mov dword [eax], 0x42f9bfce
mov eax, dword [esp + 0x3a4]
mov ecx, dword [esp + 0x3a0]
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x308], eax
jmp 0x4181f6
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.0043cd10
mov eax, dword [esp + 0x28]
mov dword [eax], 0xeb909643
mov eax, dword [esp + 0x50]
mov dword [esp + 0x13c], 4
mov dword [esp + 0x138], eax
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0xe9372e87
jmp 0x4181f6
cmp dword [esp + 0x44], 1
sete al
and al, 1
mov byte [esp + 0x91], al
mov eax, dword [esp + 0x28]
mov dword [eax], 0x5a73d3b9
jmp 0x4181f6
mov al, byte [esp + 0x184]
mov byte [esp + 0x240], al
mov byte [esp + 0x2d8], 0x56
mov byte [esp + 0x2d9], 0xbb
mov byte [esp + 0x2da], 0x5e
mov byte [esp + 0x2db], 0xb9
mov byte [esp + 0x2dc], 0x24
mov byte [esp + 0x2dd], 0xbf
mov byte [esp + 0x2de], 0x22
mov byte [esp + 0x2df], 0xbd
mov byte [esp + 0x2e0], 0xbc
mov byte [esp + 0x2e1], 0xb3
mov eax, 0xa
mov byte [esp + eax + 0x2d8], 0
add eax, 1
cmp eax, 0xe
jne 0x415765
xor eax, eax
cmp eax, 0xe
jae 0x415799
mov cl, byte [esp + eax + 0x2d8]
mov dl, al
add dl, 0x5f
xor dl, cl
add dl, 0x25
mov byte [esp + eax + 0x2d8], dl
add eax, 1
jmp 0x415777
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x2d8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004185e0
mov eax, dword [esp + 0x28]
mov dword [eax], 0xf1bbcbb2
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0x57082fe1
jmp 0x4181f6
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x40], eax
mov eax, 0x69777cc7
cmp ecx, 0
je 0x4159ce
mov eax, 0xe753e8c9
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x4181f6
mov eax, dword [esp + 0x314]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x28]
mov dword [eax], 0x88198f79
jmp 0x4181f6
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.0043cd10
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x3b0], 0
setge al
and al, 1
mov byte [esp + 0x92], al
mov eax, dword [esp + 0x28]
mov dword [eax], 0x46934fd5
jmp 0x4181f6
mov eax, dword [esp + 0x114]
mov dword [esp], eax
call fcn.004088f0
add eax, 1
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x28]
mov dword [eax], 0x8df58f9b
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0x3351c403
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x31c], eax
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0xdf0e590e
jmp 0x4181f6
mov esi, dword [esp + 0x170]
add esi, 2
mov eax, dword [esp + 0x170]
mov word [eax], 0x2c
mov eax, dword [esp + 0x354]
mov ecx, dword [esp + 0x110]
xor edx, edx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040ada0
shl eax, 1
add esi, eax
mov dword [esp + 0x3c0], esi
mov eax, dword [esp + 0x28]
mov dword [eax], 0x1bdb1bb9
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0x320], eax
jmp 0x4181f6
mov eax, dword [esp + 0x334]
xor eax, 1
mov ecx, dword [esp + 0x44]
xor ecx, 2
or eax, ecx
sete cl
mov eax, 0xd2ff8363
test cl, 1
jne 0x41680f
mov eax, 0xa9ecd1d4
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x158], 0
mov dword [esp + 0x154], 0
jmp 0x4181f6
mov eax, 0x7d4bd9f7
cmp dword [esp + 0x11c], 2
jl 0x416c00
mov eax, 0x456641e1
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x4181f6
mov eax, dword [esp + 0x28]
mov dword [eax], 0x616a4a8f
jmp 0x4181f6
call fcn.00418650
lea edi, [esp + 0x414]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x414], 0x44
mov eax, dword [0x44de20]
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.00440d30
test eax, eax
setne cl
mov ecx, dword [esp + 0xe0]
xor edx, edx
lea edx, [esp + 0x414]
lea esi, [esp + 0x3f4]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
call eax
sub esp, 0x28
cmp eax, 0
setne al
and al, 1
mov byte [esp + 0x97], al
mov eax, dword [esp + 0x28]
mov dword [eax], 0x89636534
jmp 0x4181f6
mov eax, 0xa39ade95
test byte [esp + 0x97], 1
jne 0x41723e
mov eax, 0xba00e3ad
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x4181f6
mov esi, dword [esp + 0x3f8]
mov al, byte [esp + 0x1d0]
mov byte [esp + 0x28c], al
mov byte [esp + 0x1d4], 0x97
mov byte [esp + 0x1d5], 0x96
mov byte [esp + 0x1d6], 0x95
mov byte [esp + 0x1d7], 0x94
mov eax, 4
mov byte [esp + eax + 0x1d4], 0
add eax, 1
cmp eax, 6
jne 0x417283
xor eax, eax
cmp eax, 6
jae 0x4172cb
movzx edx, byte [esp + eax + 0x1d4]
mov ecx, eax
add ecx, 0xdc
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0x23
sub edi, eax
and edi, edx
or ecx, edi
add cl, 0xb4
mov byte [esp + eax + 0x1d4], cl
add eax, 1
jmp 0x417295
mov edi, dword [esp + 0x1d4]
xor ebx, ebx
cmp ebx, dword [0x44de2c]
jb 0x4172de
jmp 0x417332
mov eax, dword [0x44de30]
cmp dword [eax + ebx*8], 0x1b6183f2
sete cl
mov byte [esp + 0x8b], cl
test cl, 1
jne 0x4172fb
jmp 0x417321
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
je 0x417321
mov ecx, dword [0x44de34]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call fcn.0043f290
test byte [esp + 0x8b], 1
je 0x41732d
mov esi, dword [esp + 0x3f4]
mov al, byte [esp + 0x1c4]
mov byte [esp + 0x290], al
mov byte [esp + 0x1c8], 0x97
mov byte [esp + 0x1c9], 0x96
mov byte [esp + 0x1ca], 0x95
mov byte [esp + 0x1cb], 0x94
mov eax, 4
mov byte [esp + eax + 0x1c8], 0
add eax, 1
cmp eax, 6
jne 0x41736c
xor eax, eax
cmp eax, 6
jae 0x4173b4
mov eax, dword [esp + 0x28]
mov dword [eax], 0xa29bae15
mov eax, dword [esp + 0x3e4]
mov dword [esp + 0x2f4], eax
jmp 0x4181f6
mov al, byte [esp + 0x84]
mov byte [esp + 0x20c], al
mov byte [esp + 0x48], 0xad
mov byte [esp + 0x49], 0x39
mov eax, 2
mov byte [esp + eax + 0x48], 0
add eax, 1
cmp eax, 4
jne 0x41756f
xor eax, eax
cmp eax, 4
jae 0x41759a
mov cl, byte [esp + eax + 0x48]
mov dl, al
add dl, 0xca
xor dl, cl
add dl, 0xe
mov byte [esp + eax + 0x48], dl
add eax, 1
jmp 0x41757e
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
mov esi, eax
mov al, byte [esp + 0x80]
mov byte [esp + 0x214], al
mov byte [esp + 0x3c], 0xbe
mov byte [esp + 0x3d], 0xaf
mov byte [esp + 0x3e], 0x5a
mov eax, 3
mov byte [esp + eax + 0x3c], 0
add eax, 1
cmp eax, 4
jne 0x4175d2
xor eax, eax
cmp eax, 4
jae 0x417619
movzx edx, byte [esp + eax + 0x3c]
mov ecx, eax
add ecx, 0xf
and ecx, edx
mov edi, eax
add edi, 0xa11a390f
or edi, edx
xor ecx, edi
mov edx, ecx
shl edx, 1
and edx, 0x68
xor ecx, 0xb4
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x3c], cl
add eax, 1
jmp 0x4175e1
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004019b0
fstp st(0)
mov al, byte [esp + 0x7c]
mov byte [esp + 0x21c], al
mov byte [esp + 0xfc], 0x1b
mov byte [esp + 0xfd], 0xe7
mov eax, 2
mov byte [esp + eax + 0xfc], 0
add eax, 1
cmp eax, 6
jne 0x41764f
xor eax, eax
cmp eax, 6
jae 0x41768f
mov dl, byte [esp + eax + 0xfc]
mov edi, eax
xor edi, 0xd7
mov ecx, eax
shl ecx, 1
and ecx, 0x50
sub ecx, edi
xor cl, dl
add cl, 0x33
mov byte [esp + eax + 0xfc], cl
add eax, 1
jmp 0x417661
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004019b0
fstp st(0)
lea eax, [esp + 0x53c]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
call fcn.0040ada0
lea eax, [esp + 0x53c]
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x1b4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040b560
mov eax, dword [esp + 0x28]
mov dword [eax], 0x3af723fa
jmp 0x4181f6
jo 0x417bdf
push edi
out 0x8b, al
inc esp
and al, 0x28
mov dword [eax], 0xdf0e590e
jmp 0x4181f6
add byte [ecx - 0x4f], ah
xchg edx, eax
push ss
jmp 0x4181f6
jmp 0x4138f7