Function at 0x40efc0
Capabilities:
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 + 0x39c], 0xd2a4de4b
lea eax, [esi + 0x39c]
mov dword [esi], eax
mov eax, dword [esi + 0x39c]
mov ecx, eax
sub ecx, 0x80225ed4
je 0x41111c
jmp 0x40eff9
mov ecx, eax
sub ecx, 0x831dc4b0
je 0x411521
jmp 0x40f009
mov ecx, eax
sub ecx, 0x83d7c62b
je 0x412164
jmp 0x40f019
mov ecx, eax
sub ecx, 0x8678fb95
je 0x413357
jmp 0x40f029
mov ecx, eax
sub ecx, 0x86ae294d
je 0x413b7f
jmp 0x40f039
mov ecx, eax
sub ecx, 0x887ca494
je 0x41119e
jmp 0x40f049
mov ecx, eax
sub ecx, 0x8ba6f132
je 0x413290
jmp 0x40f059
mov ecx, eax
sub ecx, 0x8c0fecbd
je 0x412c58
jmp 0x40f069
mov ecx, eax
sub ecx, 0x8cd2cd80
je 0x410342
jmp 0x40f079
mov ecx, eax
sub ecx, 0x8d189277
je 0x413bcf
jmp 0x40f089
mov ecx, eax
sub ecx, 0x8ee1b24e
je 0x413e9f
jmp 0x40f099
mov ecx, eax
sub ecx, 0x8f1da355
je 0x410772
jmp 0x40f0a9
mov ecx, eax
sub ecx, 0x91e9ca87
je 0x413bad
jmp 0x40f0b9
mov ecx, eax
sub ecx, 0x9357996e
je 0x4110ee
jmp 0x40f0c9
mov ecx, eax
sub ecx, 0x93ff131d
je 0x4121a5
jmp 0x40f0d9
mov ecx, eax
sub ecx, 0x946b73c2
je 0x41261c
jmp 0x40f0e9
mov ecx, eax
sub ecx, 0x97f522d3
je 0x413e0a
jmp 0x40f0f9
mov ecx, eax
sub ecx, 0x98b5b00d
je 0x4104ee
jmp 0x40f109
mov ecx, eax
sub ecx, 0x9b3552c4
je 0x4123a6
jmp 0x40f119
mov ecx, eax
sub ecx, 0x9b8e9f2d
je 0x4100c4
jmp 0x40f129
mov ecx, eax
sub ecx, 0x9d7290c8
je 0x4122de
jmp 0x40f139
mov ecx, eax
sub ecx, 0x9dfe3354
je 0x41330d
jmp 0x40f149
mov ecx, eax
sub ecx, 0x9f3f93f3
je 0x4103fd
jmp 0x40f159
mov ecx, eax
sub ecx, 0x9fae28c8
je 0x41254a
jmp 0x40f169
mov ecx, eax
sub ecx, 0xa0734146
je 0x413396
jmp 0x40f179
mov ecx, eax
sub ecx, 0xa15bbc2c
je 0x412d39
jmp 0x40f189
mov ecx, eax
sub ecx, 0xa23187c8
je 0x4102b5
jmp 0x40f199
mov ecx, eax
sub ecx, 0xa24fef90
je 0x413adf
jmp 0x40f1a9
mov ecx, eax
sub ecx, 0xa2e21f1d
je 0x41296d
jmp 0x40f1b9
mov ecx, eax
sub ecx, 0xa335f993
je 0x41225c
jmp 0x40f1c9
mov ecx, eax
sub ecx, 0xa7067e2e
je 0x4134f9
jmp 0x40f1d9
mov ecx, eax
sub ecx, 0xa9ce1335
je 0x410300
jmp 0x40f1e9
mov ecx, eax
sub ecx, 0xa9ecd041
je 0x41066b
jmp 0x40f1f9
mov ecx, eax
sub ecx, 0xac2f688b
je 0x4100d1
jmp 0x40f209
mov ecx, eax
sub ecx, 0xac8cd899
je 0x4100a6
jmp 0x40f219
mov ecx, eax
sub ecx, 0xaec74dc6
je 0x4137db
jmp 0x40f229
mov ecx, eax
sub ecx, 0xafb972e9
je 0x41214a
jmp 0x40f239
mov ecx, eax
sub ecx, 0xb0d19e62
je 0x413e51
jmp 0x40f249
mov ecx, eax
sub ecx, 0xb18bedaf
je 0x41320d
jmp 0x40f259
mov ecx, eax
sub ecx, 0xb20e9995
je 0x412681
jmp 0x40f269
mov ecx, eax
sub ecx, 0xb298de57
je 0x4132c5
jmp 0x40f279
mov ecx, eax
sub ecx, 0xb455976a
je 0x413512
jmp 0x40f289
mov ecx, eax
sub ecx, 0xb46d9bff
je 0x410f9d
jmp 0x40f299
mov ecx, eax
sub ecx, 0xb5534f91
je 0x413386
jmp 0x40f2a9
mov ecx, eax
sub ecx, 0xb5f89d39
je 0x41201f
jmp 0x40f2b9
mov ecx, eax
sub ecx, 0xb88b528d
je 0x410746
jmp 0x40f2c9
mov ecx, eax
sub ecx, 0xb9382195
je 0x410f45
jmp 0x40f2d9
mov ecx, eax
sub ecx, 0xbb56af7f
je 0x410e04
jmp 0x40f2e9
mov ecx, eax
sub ecx, 0xbc0cb4b3
je 0x4137fd
jmp 0x40f2f9
mov ecx, eax
sub ecx, 0xbc24d7ea
je 0x413a95
jmp 0x40f309
mov ecx, eax
sub ecx, 0xbda30071
je 0x410d5e
jmp 0x40f319
mov ecx, eax
sub ecx, 0xbe2054bf
je 0x412ccb
jmp 0x40f329
mov ecx, eax
sub ecx, 0xc139e9e1
je 0x412b71
jmp 0x40f339
mov ecx, eax
sub ecx, 0xc1b54f94
je 0x4110d5
jmp 0x40f349
mov ecx, eax
sub ecx, 0xc2ab30d6
je 0x41260f
jmp 0x40f359
mov ecx, eax
sub ecx, 0xc5f99dd0
je 0x4102ce
jmp 0x40f369
mov ecx, eax
sub ecx, 0xc647f883
je 0x412580
jmp 0x40f379
mov ecx, eax
sub ecx, 0xc7ef9b0a
je 0x4120ee
jmp 0x40f389
mov ecx, eax
sub ecx, 0xc819d52e
je 0x413255
jmp 0x40f399
mov ecx, eax
sub ecx, 0xc82173d5
je 0x41075f
jmp 0x40f3a9
mov ecx, eax
sub ecx, 0xc975b921
je 0x413283
jmp 0x40f3b9
mov ecx, eax
sub ecx, 0xca6c19ad
je 0x413364
jmp 0x40f3c9
mov ecx, eax
sub ecx, 0xcb8eafc8
je 0x413329
jmp 0x40f3d9
mov ecx, eax
sub ecx, 0xcd253148
je 0x4127d4
jmp 0x40f3e9
mov ecx, eax
sub ecx, 0xcd82bb81
je 0x413262
mov eax, dword [esi]
mov dword [eax], 0x1b94196a
mov byte [esi + 9], 0
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xac2f688b
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x624429a2
mov dword [esi + 0x288], 0
jmp 0x414183
mov eax, 0xa9ce1335
cmp dword [esi + 0x44], 2
jl 0x4102c5
mov eax, 0xc5f99dd0
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov eax, 0xb5534f91
cmp dword [esi + 0x44], 3
jl 0x4102de
mov eax, 0x7d3b0e5f
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov eax, 0x41b7ae86
cmp dword [esi + 0x44], 1
jl 0x410310
mov eax, 0x43f91ff8
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov ecx, dword [esi + 0x2d0]
mov eax, dword [esi + 0x30]
mov cl, byte [ecx]
mov byte [esi + 0x19c], cl
mov byte [eax], 0xe8
mov byte [eax + 1], 0x99
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x41035f
mov eax, dword [esi + 0x30]
xor ecx, ecx
cmp ecx, 6
jae 0x4103af
movzx edi, byte [eax + ecx]
mov edx, ecx
add edx, 0xa9e5f61a
mov ebx, edx
and ebx, edi
shl ebx, 1
sub edx, ebx
add edx, edi
mov edi, edx
shl edi, 1
and edi, 0xfa
xor edx, 0xae82317d
mov ebx, edx
add ebx, edi
and edx, 1
or ebx, 1
add edx, ebx
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x410370
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b40
add esp, 0xc
cmp eax, 0
setne al
and al, 1
mov byte [esi + 0xd], al
mov eax, dword [esi]
mov dword [eax], 0xea923efc
jmp 0x414183
mov eax, dword [esi + 0x41c]
mov ecx, dword [esi + 0x2d4]
mov al, byte [eax]
mov byte [esi + 0x1a0], al
mov byte [ecx], 0x1b
mov byte [ecx + 1], 0x27
mov byte [ecx + 2], 0x26
mov byte [ecx + 3], 0x21
mov eax, dword [esi + 0x2d4]
xor ecx, ecx
cmp ecx, 4
jae 0x410452
mov bl, byte [eax + ecx]
mov edi, ecx
and edi, 0xc7
xor edi, 0xc7
mov edx, ecx
and edx, 0x38
sub edx, edi
xor dl, bl
add dl, 0xe3
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x410428
mov eax, dword [eax]
mov dword [esi + 0x3d0], eax
mov edx, dword [esi + 0x420]
mov ecx, dword [esi + 0x2d8]
mov dl, byte [edx]
mov byte [esi + 0x1a4], dl
mov byte [ecx], 0x35
mov byte [ecx + 1], 0x89
mov edx, 2
mov byte [ecx + edx], 0
add edx, 1
cmp edx, 6
jne 0x41047a
mov ecx, dword [esi + 0x2d8]
xor edx, edx
cmp edx, 6
jae 0x4104b7
movzx edi, byte [ecx + edx]
mov eax, edx
add eax, 0xe2
mov ebx, edx
add ebx, 0xe2
and ebx, edi
or eax, edi
xor ebx, eax
add bl, 0x96
mov byte [ecx + edx], bl
add edx, 1
jmp 0x41048e
mov eax, dword [esi + 4]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esi + 0x3d0]
mov dword [esp + 8], eax
call fcn.00401b40
add esp, 0xc
mov ecx, 0x98b5b00d
cmp eax, 0
jne 0x4104e5
mov ecx, 0xc82173d5
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xec2c17d2
jmp 0x414183
mov ecx, dword [esi + 0x428]
mov eax, dword [esi + 0x100]
mov cl, byte [ecx]
mov byte [esi + 0x1b4], cl
mov byte [eax], 0x2a
mov byte [eax + 1], 0x3a
mov byte [eax + 2], 0x86
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x41068f
mov eax, dword [esi + 0x100]
mov dword [esi + 0xc4], eax
xor ecx, ecx
cmp ecx, 6
jae 0x410703
mov eax, dword [esi + 0xc4]
movzx edi, byte [eax + ecx]
mov ebx, ecx
and ebx, 0xe1
mov eax, ecx
and eax, 0x1e
mov edx, ecx
xor edx, 0xe1
add edx, ecx
sub edx, eax
add edx, ebx
mov ebx, edi
and ebx, 0x10
xor ebx, 0x10
mov eax, edi
add eax, 1
xor edi, 0xffffffff
or edi, 0xef
add edi, eax
or ebx, edi
xor edx, ebx
xor dl, 0x10
add dl, 0x9b
mov eax, dword [esi + 0xc4]
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x4106a9
mov eax, dword [esi + 4]
sub esp, 0xc
mov dword [esp], eax
mov eax, dword [esi + 0xc4]
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b40
add esp, 0xc
cmp eax, 0
setne al
xor al, 0xff
and al, 1
or al, 0
xor al, 0
and al, 1
mov byte [esi + 0xf], al
mov eax, dword [esi]
mov dword [eax], 0xb88b528d
jmp 0x414183
mov eax, 0x8d189277
test byte [esi + 0xf], 1
jne 0x410756
mov eax, 0x2ec9c582
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov eax, dword [esi + 0x100]
mov eax, dword [esi]
mov dword [eax], 0x8f1da355
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x383671c9
jmp 0x414183
mov al, byte [esi + 0x360]
mov ecx, dword [esi + 0x35c]
mov eax, 0xffffffff
test byte [esi + 0x11], 1
jne 0x410d77
mov eax, ecx
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov dword [esi + 0x128], eax
mov eax, dword [0x44e0bc]
mov dword [esi + 0x3bc], eax
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx]
mov dword [esi + 0x3b0], eax
mov edx, dword [esi + 0x128]
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0x124]
mov eax, dword [esi + 0x34]
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, 0x58db569a
cmp eax, 0
jge 0x410dee
mov ecx, 0x31da89da
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x414183
mov eax, dword [esi + 0x1c]
sub esp, 4
mov dword [esp], eax
call fcn.00408400
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x5b2bd7c3
jmp 0x414183
mov eax, dword [esi + 0x130]
mov ecx, dword [esi + 0x354]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401b80
add esp, 4
mov dword [esp], eax
call fcn.00401900
add esp, 4
mov dword [esi + 0x134], eax
mov eax, 0x3cc03a82
cmp dword [esi + 0x134], 0
je 0x410f87
mov eax, 0xb46d9bff
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov eax, dword [esi + 0x134]
sub esp, 4
mov dword [esp], eax
call fcn.00418730
add esp, 4
mov edi, eax
mov eax, edi
and eax, 1
shl eax, 1
xor edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x410fd7
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083f0
add esp, 4
mov dword [esi + 0x138], eax
mov eax, dword [esi + 0x138]
mov ecx, dword [esi + 0x134]
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.0040acf0
add esp, 0x10
mov ecx, dword [esi + 0x138]
mov eax, dword [esi + 0x12c]
mov dword [esi + 0x3b8], eax
mov edx, dword [esi + 0x128]
mov al, byte [esi + 0x10]
mov byte [esi + 0xa], al
mov edi, dword [esi + 0x4ac]
mov eax, dword [esi + 0x4a8]
mov ebx, dword [esi + 0x14]
sub esp, 0x1c
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov eax, dword [esi + 0x3b8]
mov dword [esp + 4], eax
mov dword [esp], ebx
movzx eax, byte [esi + 0xa]
and eax, 1
mov dword [esp + 0x18], eax
call fcn.00423590
add esp, 0x1c
mov eax, dword [esi]
mov dword [eax], 0xffefd281
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x43d9fe9
mov eax, dword [esi + 0x4b0]
mov dword [esi + 0x28c], eax
jmp 0x414183
mov eax, dword [esi + 0x12c]
sub esp, 4
mov dword [esp], eax
call fcn.00408400
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x4bffadbd
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x20a11511
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x8d189277
jmp 0x414183
mov ecx, dword [esi + 0x458]
mov eax, dword [esi + 0x308]
mov cl, byte [ecx]
mov byte [esi + 0x1e4], cl
mov byte [eax], 0xc4
mov byte [eax + 1], 0x21
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x411541
mov edx, dword [esi + 0x308]
xor ecx, ecx
cmp ecx, 8
jae 0x4115f8
movzx eax, byte [edx + ecx]
mov dword [esi + 0x27c], eax
mov eax, ecx
xor eax, 0xea69ce87
mov edi, ecx
or edi, 0x15963178
and edi, eax
mov ebx, edi
and ebx, 2
xor ebx, 2
mov eax, edi
and eax, 0xfffffffd
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add ebx, edi
mov eax, ecx
shl eax, 1
and eax, 0x2b2c62f0
mov edi, ecx
add edi, 0x15963178
sub edi, eax
add ebx, edi
mov eax, ebx
and eax, dword [esi + 0x27c]
mov dword [esi + 0x3e0], edx
mov edx, eax
or edx, 0xfd
add edx, 1
mov edi, eax
and edi, 0xfd
imul edx, edi
mov edi, eax
and edi, 2
or eax, 2
imul eax, edi
sub edx, eax
add ebx, dword [esi + 0x27c]
add ebx, edx
mov edx, dword [esi + 0x3e0]
add bl, 0xa8
mov byte [edx + ecx], bl
add ecx, 1
jmp 0x411555
mov eax, dword [esi + 4]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 3
call fcn.00401b40
add esp, 0xc
mov ecx, 0x6413cd6d
cmp eax, 0
jne 0x411624
mov ecx, 0x5e045d2e
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x414183
mov eax, dword [esi + 0x364]
sub esp, 4
mov dword [esp], eax
call fcn.00418730
add esp, 4
mov dword [esi + 0x370], eax
mov edi, dword [esi + 0x370]
mov eax, edi
and eax, 1
shl eax, 1
xor edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412063
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083f0
add esp, 4
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0x140]
mov ecx, dword [esi + 0x364]
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.0040acf0
add esp, 0x10
mov eax, dword [esi + 0x7c]
add eax, 4
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x80]
mov eax, dword [eax]
mov ecx, dword [esi + 0x7c]
movzx ecx, word [ecx]
shr ecx, 1
mov edx, ecx
xor edx, 1
and ecx, 0xfffffffe
shl ecx, 1
sub ecx, edx
shl ecx, 1
add eax, ecx
mov dword [esi + 0x374], eax
mov eax, dword [esi]
mov dword [eax], 0xc7ef9b0a
mov eax, dword [esi + 0x374]
mov dword [esi + 0x290], eax
jmp 0x414183
mov eax, dword [esi + 0x290]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
mov eax, 0xf2ef2ac7
cmp dword [esi + 0x84], ecx
jae 0x412114
mov eax, 0x93ff131d
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x374]
mov dword [esi + 0x294], eax
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x91bddbf
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x93ff131d
mov eax, dword [esi + 0x84]
mov dword [esi + 0x294], eax
jmp 0x414183
mov edi, dword [esi + 0x294]
mov eax, dword [esi + 0x80]
mov eax, dword [eax]
sub edi, eax
sar edi, 1
mov eax, edi
add eax, dword [esi + 0x370]
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4121d8
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083f0
add esp, 4
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x80]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004187c0
add esp, 0xc
mov ecx, dword [esi + 0x140]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409ee0
add esp, 8
mov dword [esi + 0x4c0], eax
mov eax, dword [esi]
mov dword [eax], 0x608fbf8b
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xe24ee768
jmp 0x414183
mov eax, dword [esi + 0x88]
sub esp, 4
mov dword [esp], eax
call fcn.00408400
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x2a33ea
jmp 0x414183
mov eax, dword [esi + 0x298]
mov dword [esi + 0x144], eax
mov eax, dword [esi + 0x368]
sub esp, 4
mov dword [esp], eax
call fcn.00401ba0
add esp, 4
mov ecx, 0x191b928c
cmp dword [esi + 0x144], eax
jb 0x4123d8
mov ecx, 0x1cb5e2a3
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xd0624e07
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x9b3552c4
mov eax, dword [esi + 0x4c4]
mov dword [esi + 0x298], eax
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x946b73c2
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xfb54b04a
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xef45aa56
jmp 0x414183
mov eax, dword [esi + 0x150]
sub esp, 4
mov dword [esp], eax
call fcn.00418730
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 0x412805
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083f0
add esp, 4
mov dword [esi + 0x158], eax
mov eax, dword [esi + 0x158]
mov ecx, dword [esi + 0x150]
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.0040acf0
add esp, 0x10
mov eax, dword [esi + 0x154]
sub esp, 4
mov dword [esp], eax
call fcn.00418730
add esp, 4
mov edi, eax
mov eax, edi
and eax, 1
shl eax, 1
xor edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41287f
mov eax, dword [esi + 0x160]
sub esp, 4
mov dword [esp], eax
call fcn.00418730
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 0x41299e
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083f0
add esp, 4
mov dword [esi + 0x378], eax
mov eax, dword [esi + 0x378]
mov ecx, dword [esi + 0x160]
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.0040acf0
add esp, 0x10
mov eax, dword [esi]
mov dword [eax], 0x3d34e157
mov eax, dword [esi + 0x378]
mov dword [esi + 0x29c], eax
jmp 0x414183
mov eax, dword [esi + 0x2a0]
mov dword [esi + 0x94], eax
mov ecx, dword [esi + 0x48c]
mov eax, dword [esi + 0x330]
mov cl, byte [ecx]
mov byte [esi + 0x230], cl
mov byte [eax], 0xd7
mov byte [eax + 1], 0xc3
mov byte [eax + 2], 0x4a
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x412ba1
mov eax, dword [esi + 0x330]
mov dword [esi + 0xb0], eax
xor ecx, ecx
cmp ecx, 7
jae 0x412c07
mov eax, dword [esi + 0xb0]
movzx ebx, byte [eax + ecx]
mov edi, 0xec
sub edi, ecx
and edi, ebx
xor ebx, 0xffffffff
mov eax, ecx
add eax, 0xc1405214
mov edx, 0xec
sub edx, ecx
or edx, ebx
add edx, eax
or edx, edi
mov eax, edx
shl eax, 1
and eax, 2
xor edx, 1
add edx, eax
add dl, 0xa0
mov eax, dword [esi + 0xb0]
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x412bbb
sub esp, 8
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xb0]
mov dword [esp + 4], eax
call fcn.00401990
add esp, 8
mov dword [esi + 0x16c], eax
mov eax, 0x8c0fecbd
cmp dword [esi + 0x16c], 0
jne 0x412c3b
mov eax, 0x5fe6f350
mov ecx, dword [esi]
mov dword [ecx], eax
mov dword [esi + 0x2b0], 0
mov dword [esi + 0x2ac], 0
jmp 0x414183
mov eax, dword [esi + 0x16c]
sub esp, 4
mov dword [esp], eax
call fcn.00401ba0
add esp, 4
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
mov ecx, 0xc
mul ecx
seto cl
add eax, 4
setb dl
mov dh, cl
and dh, dl
xor cl, dl
or dh, cl
mov ecx, 0xffffffff
test dh, 1
jne 0x412c96
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083f0
add esp, 4
mov ecx, dword [esi + 0x20]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0x98], eax
mov eax, 0xa15bbc2c
cmp dword [esi + 0x20], 0
je 0x412cc2
mov eax, 0xbe2054bf
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov eax, dword [esi + 0x98]
imul ecx, dword [esi + 0x20], 0xc
add eax, ecx
mov dword [esi + 0x4c8], eax
mov eax, dword [esi]
mov dword [eax], 0xdeea517
mov eax, dword [esi + 0x98]
mov dword [esi + 0x2a4], eax
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xe73de267
mov dword [esi + 0x2a8], 0
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xd6ab5922
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xcd82bb81
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x8ba6f132
jmp 0x414183
cmp dword [esi + 0x164], 0
sete al
and al, 1
mov byte [esi + 0x12], al
mov eax, dword [esi]
mov dword [eax], 0x162fcc63
jmp 0x414183
mov eax, dword [esi + 0x164]
sub esp, 4
mov dword [esp], eax
call fcn.00408400
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xdbbacd67
jmp 0x414183
mov eax, 0xca6c19ad
cmp dword [esi + 0x94], 0
je 0x413320
mov eax, 0xcb8eafc8
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x477b7093
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xca6c19ad
jmp 0x414183
mov ecx, dword [esi + 0x6c]
call fcn.00408f80
mov eax, dword [esi]
mov dword [eax], 0x166ca465
jmp 0x414183
mov eax, dword [esi + 0x40]
mov eax, dword [esi]
mov dword [eax], 0xa0734146
jmp 0x414183
mov ecx, dword [esi + 0x344]
mov eax, dword [esi + 0x40]
mov cl, byte [ecx]
mov byte [esi + 0x248], cl
mov byte [eax], 0xf0
mov byte [eax + 1], 1
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4133b3
mov edx, dword [esi + 0x40]
xor ecx, ecx
cmp ecx, 7
jae 0x413415
movzx eax, byte [edx + ecx]
mov dword [esi + 0x278], edx
mov edx, ecx
add edx, 0x40
mov ebx, 0xbf
sub ebx, ecx
mov edi, eax
add edi, 1
mov dword [esi + 0x3a0], edi
mov edi, eax
xor edi, 0xffffffff
or ebx, edi
add ebx, dword [esi + 0x3a0]
xor eax, 0xffffffff
and edx, eax
or edx, ebx
add dl, 0xc0
mov eax, dword [esi + 0x278]
mov byte [eax + ecx], dl
mov edx, dword [esi + 0x278]
add ecx, 1
jmp 0x4133c4
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004018c0
add esp, 8
mov dword [esi + 0x174], eax
mov ecx, dword [esi + 0x348]
mov eax, dword [esi + 0x70]
mov cl, byte [ecx]
mov byte [esi + 0x250], cl
mov byte [eax], 0xaa
mov byte [eax + 1], 0x21
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x41344d
mov eax, dword [esi + 0x70]
xor ecx, ecx
cmp ecx, 6
jae 0x4134b4
movzx edi, byte [eax + ecx]
mov edx, ecx
add edx, 0x75f4ec8a
mov ebx, edx
shl ebx, 1
and ebx, 0xd3ae5a90
xor edx, 0xe9d72d48
add edx, ebx
add edx, 0x8a0b1376
xor edx, edi
add edx, 0x6ecc1d97
mov edi, edx
xor edi, 0xfe
mov ebx, edx
or ebx, 1
and ebx, edi
or edx, 1
add edx, ebx
mov byte [eax + ecx], dl
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0x41345e
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.004018c0
add esp, 8
mov dword [esi + 0x178], eax
mov eax, dword [esi + 0x174]
test eax, eax
sete al
mov ecx, dword [esi + 0x178]
test ecx, ecx
sete cl
or al, cl
and al, 1
mov byte [esi + 0x13], al
mov eax, dword [esi]
mov dword [eax], 0xa7067e2e
jmp 0x414183
mov eax, 0xb455976a
test byte [esi + 0x13], 1
jne 0x413509
mov eax, 0x3bc5e6e7
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x7c086727
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x6fe2e121
mov eax, dword [esi + 0xa4]
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x2c4], ecx
mov dword [esi + 0x2c0], eax
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0xe968de5b
jmp 0x414183
mov eax, dword [esi + 0x2c]
add eax, 0xfffffffc
mov dword [esi + 0x394], eax
mov eax, dword [esi + 0x394]
mov eax, dword [eax]
shl eax, 3
add eax, dword [esi + 0x2c]
mov dword [esi + 0x398], eax
mov ecx, dword [esi + 0x398]
mov eax, 0xd14bd0e0
cmp dword [esi + 0x2c], ecx
je 0x413aca
mov eax, 0xa24fef90
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x398]
mov dword [esi + 0x2c8], eax
jmp 0x414183
mov eax, dword [esi + 0x2c8]
add eax, 0xfffffff8
mov dword [esi + 0x184], eax
mov ecx, dword [esi + 0x184]
call fcn.00418b00
mov ecx, dword [esi + 0x184]
mov eax, 0xd14bd0e0
cmp ecx, dword [esi + 0x2c]
je 0x413b0e
mov eax, 0xa24fef90
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x184]
mov dword [esi + 0x2c8], eax
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x6791ff9c
jmp 0x414183
mov ecx, dword [esi + 0x78]
call fcn.00408f80
mov eax, dword [esi]
mov dword [eax], 0x7c086727
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x7a8a5b3e
jmp 0x414183
mov eax, dword [esi]
mov dword [eax], 0x8f1da355
jmp 0x414183
mov byte [0xb2282640], al
jp 0x413ea7
push edx
out 0x79, eax
ljmp 0x68b
adc dl, bh
sub eax, edx
pop edx
xlatb
xchg esi, eax
mov eax, dword [esi + 0x8c]
sub esp, 4
mov dword [esp], eax
call fcn.00408400
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x56c81573
jmp 0x414183
jmp 0x40efe3