Function at 0x476e10
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf4
mov ebx, dword [esp + 0x120]
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov esi, dword [esp + 0x10c]
mov edi, dword [0x5c0b00]
xor edi, esp
mov dword [esp + 0xf0], edi
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], edx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], eax
mov eax, ebx
and eax, 7
mov dword [esp + 0xa4], eax
mov eax, ebx
neg al
mov ecx, 0xffffffff
shrx eax, ecx, eax
mov dword [esp + 0xa0], eax
test ebx, ebx
mov eax, 0xc0b90575
mov ecx, 0x6d82375e
cmove ecx, eax
mov dword [esp + 0x9c], ecx
shr ebx, 3
mov dword [esp + 0x98], ebx
mov eax, 0x32095385
jmp 0x476f40
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov ebp, ecx
not ebp
mov edx, eax
not edx
mov ebx, ebp
and ebx, 0x696c288f
and ecx, 0x9693d770
or ecx, ebx
or ebp, edx
and edx, 0x696c288f
and eax, 0x9693d770
or eax, edx
xor eax, ecx
not ebp
or ebp, eax
mov dword [esp + 0x50], ebp
cmp dword [esp + 0xe4], 0
setne byte [esp + 0x1c]
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0xf81bfe3e
mov ebx, 0x8d53ceda
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0xf81bfe3e
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, ebx
nop word cs:[eax + eax]
cmp eax, 0xfff6f0ee
jg 0x476fb0
cmp eax, 0xc2e8616f
jle 0x477010
cmp eax, 0xe4a17fc4
jg 0x477131
cmp eax, 0xd0f29e3b
jle 0x4772cc
cmp eax, 0xdc479d45
jg 0x4775cd
cmp eax, 0xd695eb07
jg 0x477a59
cmp eax, 0xd0f29e3c
je 0x478101
cmp eax, 0xd2c3f5fa
jne 0x476f40
movzx ecx, byte [esp + 2]
mov eax, ecx
xor al, 0xfe
test al, cl
mov eax, 0xe5951f68
mov ecx, 0x43ffd259
cmove eax, ecx
jmp 0x476f40
cmp eax, 0x41f55e53
jg 0x477090
cmp eax, 0x2f880cee
jle 0x47717d
cmp eax, 0x35db72a6
jle 0x47733b
cmp eax, 0x3a0e2ba4
jg 0x4775f8
cmp eax, 0x361ef0dd
jg 0x477a8f
cmp eax, 0x35db72a7
je 0x478129
cmp eax, 0x35e5a536
jne 0x476f40
mov eax, 0x9c2c2d28
jmp 0x476f40
cmp eax, 0xab7284ab
jle 0x4771d1
cmp eax, 0xb7a9019e
jle 0x4773b7
cmp eax, 0xbd3ffff1
jg 0x477657
cmp eax, 0xbb6bbdce
jg 0x477ad9
cmp eax, 0xb7a9019f
je 0x47813e
cmp eax, 0xbab85290
jne 0x476f40
mov eax, dword [esp + 0x44]
shlx eax, dword [edi], eax
or eax, dword [esp + 4]
mov dword [esi], eax
mov eax, dword [esp + 0x3c]
shrx ecx, dword [edi], eax
mov dword [esp + 4], ecx
cmp dword [esp + 0xe4], eax
mov eax, 0x1e47715a
mov ecx, 0x22fb482c
cmove eax, ecx
jmp 0x476f40
cmp eax, 0x61636cad
jle 0x477269
cmp eax, 0x729ac551
jle 0x477423
cmp eax, 0x78cf3054
jg 0x47769c
cmp eax, 0x76536861
jg 0x477b47
cmp eax, 0x729ac552
je 0x478155
cmp eax, 0x734dec09
jne 0x476f40
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x4e218dd3
mov ebp, 0x8795e585
cmovne ebx, ebp
test eax, edx
mov eax, ebx
cmove eax, ebp
cmp ecx, 0xa
mov ecx, dword [edi]
cmovge eax, ebx
mov edx, dword [esp + 0x40]
xor edx, ecx
andn ecx, edx, ecx
mov edx, dword [esp + 0x54]
shlx ecx, ecx, edx
mov dword [esp + 0xbc], ecx
jmp 0x476f40
cmp eax, 0xf170eec4
jle 0x47748f
cmp eax, 0xf87e020f
jle 0x4776c7
cmp eax, 0xf9703842
jg 0x477b85
cmp eax, 0xf87e0210
je 0x478167
cmp eax, 0xf8bcfc2c
jne 0x476f40
mov eax, dword [esp + 0x94]
mov dword [esp + 0x54], eax
mov eax, 0xb0ec3ca5
jmp 0x476f40
cmp eax, 0x151ef57c
jg 0x4774d2
cmp eax, 0xe44b512
jle 0x47771f
cmp eax, 0x10fcadca
jg 0x477c16
cmp eax, 0xe44b513
je 0x4781a8
cmp eax, 0xfe401ba
jne 0x476f40
movzx eax, byte [esp + 2]
not al
or al, 0xfe
cmp al, 0xff
mov eax, 0xc7afa565
mov ecx, 0xc04fd41b
cmove eax, ecx
jmp 0x476f40
cmp eax, 0x98a1f88e
jg 0x477508
cmp eax, 0x8795e584
jle 0x477768
cmp eax, 0x8d53ced9
jg 0x477c81
cmp eax, 0x8795e585
je 0x4781da
cmp eax, 0x89dc1b90
jne 0x476f40
mov eax, dword [edi]
not eax
mov ecx, dword [esp + 0x28]
not ecx
or ecx, eax
not ecx
mov eax, dword [esp + 0x48]
shrx eax, ecx, eax
mov edx, dword [esi + 4]
not edx
mov ecx, dword [esp + 8]
not ecx
or ecx, edx
mov edx, ecx
not edx
mov ebx, ecx
and ebx, 0x31652655
and edx, 0xce9ad9aa
or edx, ebx
mov ebx, eax
not ebx
or ecx, ebx
and ebx, 0x31652655
and eax, 0xce9ad9aa
or eax, ebx
xor eax, edx
not ecx
or ecx, eax
mov dword [esi + 4], ecx
add esi, 4
mov eax, 0x6cd723c1
jmp 0x476f40
cmp eax, 0x5075267b
jg 0x47758b
cmp eax, 0x46e6d77e
jle 0x4777ab
cmp eax, 0x4db87eb6
jg 0x477cc9
cmp eax, 0x46e6d77f
je 0x4781ef
cmp eax, 0x48d9c126
jne 0x476f40
mov eax, dword [esp + 0x70]
mov dword [esp + 0x38], eax
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xf81bfe3e
mov ebx, 0x547d98c4
jmp 0x476f19
cmp eax, 0xc7afa564
jle 0x4777d6
cmp eax, 0xcd846c35
jg 0x477ce9
cmp eax, 0xc7afa565
je 0x478209
cmp eax, 0xcb3be1e7
jne 0x476f40
movzx eax, byte [esp + 3]
not al
or al, 0xfe
cmp al, 0xff
setne byte [esp + 0x1b]
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xf9703843
mov ebx, 0xb7a9019f
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0xf9703843
jmp 0x476f28
cmp eax, 0x32095384
jle 0x47781b
cmp eax, 0x357a6cac
jg 0x477d32
cmp eax, 0x32095385
je 0x47829c
cmp eax, 0x33638ef7
jne 0x476f40
mov edx, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x1b03a7cc
mov ebx, 0x76536862
cmovne edx, ebx
cmp eax, 0xffffffff
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esp + 8]
mov dword [esp + 0xc4], ecx
cmovge eax, edx
jmp 0x476f40
cmp eax, 0xaeb2cf01
jle 0x477886
cmp eax, 0xb3839b77
jg 0x477d5f
cmp eax, 0xaeb2cf02
je 0x4782c4
cmp eax, 0xb0ec3ca5
jne 0x476f40
mov eax, dword [esp + 0x94]
mov dword [esp + 0x54], eax
movzx eax, byte [esp + 2]
not al
or al, 0xfe
cmp al, 0xff
setne byte [esp + 0x1a]
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0xf8bcfc2c
mov ebx, 0x58afe74d
jmp 0x477643
cmp eax, 0x6efc6da9
jle 0x4778c1
cmp eax, 0x71487a59
jg 0x477e09
cmp eax, 0x6efc6daa
je 0x47832d
cmp eax, 0x6f1f14b3
jne 0x476f40
mov ecx, dword [esi]
not ecx
mov eax, dword [esp + 0x50]
not eax
or eax, ecx
mov ecx, eax
not ecx
mov ebp, dword [esp + 0x84]
mov edx, ebp
not edx
mov ebx, eax
and ebx, 0xf93be2a1
and ecx, 0x6c41d5e
or ecx, ebx
or eax, edx
and edx, 0xf93be2a1
mov ebx, ebp
and ebx, 0x6c41d5e
jmp 0x4787ba
cmp eax, 0xe8c1ac50
jle 0x477905
cmp eax, 0xedb24823
jg 0x477e54
cmp eax, 0xe8c1ac51
je 0x47836e
cmp eax, 0xed33f980
jne 0x476f40
cmp byte [esp + 0x1d], 0
mov eax, 0x6efc6daa
mov ecx, 0xbf5399f
cmovne eax, ecx
jmp 0x476f40
cmp eax, 0x1e477159
jle 0x477959
cmp eax, 0x274bfbcc
jg 0x477e9f
cmp eax, 0x1e47715a
je 0x478378
cmp eax, 0x22fb482c
jne 0x476f40
mov eax, 0x71487a5a
jmp 0x476f40
cmp eax, 0xa075b03b
jle 0x477984
cmp eax, 0xa4c73b98
jg 0x477edb
cmp eax, 0xa075b03c
je 0x4783ab
cmp eax, 0xa3e1b306
jne 0x476f40
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x7a8249ac
mov ebp, 0x35db72a7
cmovne ebx, ebp
test eax, edx
mov eax, ebx
cmove eax, ebp
cmp ecx, 0xa
mov ecx, dword [esp + 0xec]
cmovge eax, ebx
sub ecx, dword [esp + 0x120]
mov dword [esp + 0xb0], ecx
jmp 0x476f40
cmp eax, 0x57033021
jle 0x4779af
cmp eax, 0x58afe74c
jg 0x477fa7
cmp eax, 0x57033022
je 0x4783dd
cmp eax, 0x570f1dc3
jne 0x476f40
cmp edi, dword [esp + 0x24]
mov eax, 0x151ef57d
mov ecx, 0xacd82a4b
cmove eax, ecx
jmp 0x476f40
cmp eax, 0xde34188e
jg 0x477fed
cmp eax, 0xdc479d46
je 0x478411
cmp eax, 0xdca4fddf
jne 0x476f40
mov eax, 0x4db87eb7
jmp 0x476f40
cmp eax, 0x3cde74fe
jg 0x478038
cmp eax, 0x3a0e2ba5
je 0x478426
cmp eax, 0x3bb6debb
jne 0x476f40
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x94], eax
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xf8bcfc2c
mov ebx, 0xb0ec3ca5
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0xf8bcfc2c
jmp 0x476f28
cmp eax, 0xc0b90574
jg 0x478080
cmp eax, 0xbd3ffff2
je 0x478430
cmp eax, 0xc04fd41b
jne 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x555dae41
mov ebx, 0xa72ddd10
jmp 0x477f93
cmp eax, 0x7c2d87cb
jg 0x4780a8
cmp eax, 0x78cf3055
je 0x478446
cmp eax, 0x7a8249ac
jne 0x476f40
mov eax, 0xa3e1b306
jmp 0x476f40
cmp eax, 0xf3f0324e
jg 0x4780c8
cmp eax, 0xf170eec5
je 0x4784ba
cmp eax, 0xf3a15494
jne 0x476f40
mov eax, dword [edi]
mov ecx, dword [esp + 0x28]
xor ecx, eax
andn eax, ecx, eax
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x5c]
shlx eax, eax, ecx
mov dword [esp + 0x78], eax
mov eax, 0x85c8944b
mov ecx, 0x8769393d
cmovb eax, ecx
jmp 0x476f40
cmp eax, 0xfff6f0ef
je 0x4784cc
cmp eax, 0xbf5399f
je 0x4784d6
cmp eax, 0xdbc8fae
jne 0x476f40
movzx eax, byte [esp + 3]
not al
or al, 0xfe
cmp al, 0xff
mov eax, 0xd0f29e3c
mov ecx, 0xc2e86170
cmove eax, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x80], ecx
jmp 0x476f40
cmp eax, 0x8214a423
je 0x478540
cmp eax, 0x85c8944b
je 0x478550
cmp eax, 0x8769393d
jne 0x476f40
mov eax, dword [esp + 8]
or eax, dword [esp + 0x4c]
mov ecx, dword [esi]
not ecx
not eax
or eax, ecx
not eax
or eax, dword [esp + 0x78]
mov dword [esi], eax
mov eax, 0x9e0d865a
jmp 0x476f40
cmp eax, 0x41f55e54
je 0x4785af
cmp eax, 0x43ffd259
je 0x4785d9
cmp eax, 0x4560f118
jne 0x476f40
mov eax, 0x71df3f47
jmp 0x476f40
cmp eax, 0xc2e86170
je 0x478603
cmp eax, 0xc5abef18
je 0x4786b7
cmp eax, 0xc6f08333
jne 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xdca4fddf
mov ebx, 0x4db87eb7
jmp 0x478b3a
cmp eax, 0x2f880cef
je 0x4786c1
cmp eax, 0x2fb3fb64
je 0x4786cb
cmp eax, 0x3043517d
jne 0x476f40
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xf170eec5
mov ebp, 0xe8c1ac51
cmovne ebx, ebp
test eax, edx
mov eax, ebx
cmove eax, ebp
cmp ecx, 0xa
cmovge eax, ebx
mov dword [esp + 0x10], 1
jmp 0x476f40
cmp eax, 0xab7284ac
je 0x478722
cmp eax, 0xabbc9745
je 0x478754
cmp eax, 0xacd82a4b
jne 0x476f40
cmp dword [esp + 0xe4], 0
mov eax, 0xf3a15494
mov ecx, 0xfff6f0ef
cmove eax, ecx
jmp 0x476f40
cmp eax, 0x61636cae
je 0x4787ce
cmp eax, 0x6cd723c1
je 0x4787eb
cmp eax, 0x6d82375e
jne 0x476f40
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xac], eax
mov eax, 0x78cf3055
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x7c], ecx
jmp 0x476f40
cmp eax, 0xe4a17fc5
je 0x47882d
cmp eax, 0xe5951f68
je 0x47883f
cmp eax, 0xe6a0be9d
jne 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xb3839b78
mov ebx, 0x98a1f88f
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0xb3839b78
jmp 0x476f28
cmp eax, 0x151ef57d
je 0x478869
cmp eax, 0x1a777574
je 0x4788b0
cmp eax, 0x1b03a7cc
jne 0x476f40
mov eax, 0x33638ef7
jmp 0x476f40
cmp eax, 0x98a1f88f
je 0x4788c2
cmp eax, 0x9c2c2d28
je 0x478908
cmp eax, 0x9e0d865a
jne 0x476f40
mov eax, 0xfff6f0ef
jmp 0x476f40
cmp eax, 0x5075267c
je 0x47892f
cmp eax, 0x547d98c4
je 0x476eb3
cmp eax, 0x555dae41
jne 0x476f40
mov ebp, dword [esp + 0x120]
sub ebp, dword [esp + 0xec]
mov eax, dword [edi]
not eax
mov ecx, dword [esp + 0xc]
not ecx
or ecx, eax
not ecx
shlx eax, ecx, ebp
mov ecx, dword [esi]
mov edx, dword [esp + 0x20]
xor edx, ecx
andn edx, edx, ecx
mov ecx, edx
not ecx
mov ebx, ecx
and ebx, 0xc8fa4596
and edx, 0x3705ba69
or edx, ebx
mov ebx, eax
not ebx
or ecx, ebx
and ebx, 0xc8fa4596
and eax, 0x3705ba69
or eax, ebx
xor eax, edx
mov edx, 0x20
not ecx
or ecx, eax
mov dword [esi], ecx
mov eax, ebp
neg eax
shrx eax, dword [edi], eax
mov dword [esp + 4], eax
mov dword [esp + 0x44], ebp
sub edx, ebp
mov dword [esp + 0x3c], edx
add edi, 4
add esi, 4
mov eax, 0xa72ddd10
jmp 0x476f40
cmp eax, 0xd695eb08
je 0x4789b8
cmp eax, 0xda555916
jne 0x476f40
mov eax, dword [esp + 8]
mov dword [esp + 0xd8], eax
mov eax, 0x48d9c126
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x70], ecx
jmp 0x476f40
cmp eax, 0x361ef0de
je 0x478a84
cmp eax, 0x399b667b
jne 0x476f40
mov edx, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xfe61f005
mov ebx, 0xb6ed4797
jmp 0x478ba3
cmp eax, 0xbb6bbdcf
je 0x478aa8
cmp eax, 0xbd377b7c
jne 0x476f40
mov edx, dword [esp + 0xe4]
mov eax, edx
and eax, 7
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x58]
sub eax, ecx
shr eax, 3
add eax, edi
mov dword [esp + 0x30], eax
shr edx, 3
add edx, dword [esp + 0x24]
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x98]
add eax, esi
mov dword [esp + 0x14], eax
test ecx, ecx
mov eax, 0x399b667b
mov ecx, 0x71df3f47
cmove eax, ecx
jmp 0x476f40
cmp eax, 0x76536862
je 0x478adb
cmp eax, 0x76ebade1
jne 0x476f40
movzx ecx, byte [esp + 2]
mov eax, ecx
xor al, 0xfe
test al, cl
mov eax, 0xeed89cdf
mov ecx, 0xded96caf
cmove eax, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x88], ecx
jmp 0x476f40
cmp eax, 0xf9703843
je 0x478af0
cmp eax, 0xfe61f005
jne 0x476f40
mov dword [esp + 0x2c], esi
mov esi, edi
mov edi, dword [esp + 0x14]
movzx eax, byte [edi]
mov cl, 8
mov ebx, dword [esp + 0x58]
sub cl, bl
mov edx, 0xff
shrx ecx, edx, ecx
xor eax, ecx
andn eax, eax, ecx
mov ebp, dword [esp + 0x30]
movzx ecx, byte [ebp]
shlx edx, edx, ebx
xor ecx, edx
andn edx, ecx, edx
mov ecx, edx
not ecx
mov ebx, ecx
and ebx, 0x1f
and edx, 0xe0
or edx, ebx
mov ebx, eax
not ebx
or ecx, ebx
and ebx, 0x1f
and eax, 0xffffffe0
or eax, ebx
xor eax, edx
not ecx
or ecx, eax
mov byte [edi], cl
inc ebp
mov dword [esp + 0x30], ebp
inc edi
mov dword [esp + 0x14], edi
mov edi, esi
mov esi, dword [esp + 0x2c]
mov eax, 0xb6ed4797
jmp 0x476f40
cmp eax, 0x10fcadcb
je 0x478afa
cmp eax, 0x1125fb7f
jne 0x476f40
mov dword [esp + 0x2c], esi
mov esi, edi
mov edi, dword [esp + 0x14]
movzx eax, byte [edi]
mov ebp, 0xff
mov ebx, dword [esp + 0x90]
shlx ecx, ebp, ebx
not ecx
not eax
or eax, ecx
not eax
mov ecx, dword [esp + 0x8c]
movzx ecx, byte [ecx]
mov dl, 8
sub dl, bl
shrx edx, ebp, edx
not edx
not ecx
or ecx, edx
not ecx
or ecx, eax
mov byte [edi], cl
mov edi, esi
mov esi, dword [esp + 0x2c]
mov eax, 0xc1508888
jmp 0x476f40
cmp eax, 0x8d53ceda
je 0x478b04
cmp eax, 0x91e22cd6
jne 0x476f40
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xf170eec5
mov ebp, 0x3043517d
jmp 0x478818
cmp eax, 0x4db87eb7
je 0x478b1b
cmp eax, 0x4e218dd3
jne 0x476f40
mov eax, 0x734dec09
jmp 0x476f40
cmp eax, 0xcd846c36
je 0x47828f
cmp eax, 0xce129bf9
jne 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x4e218dd3
mov ebx, 0x734dec09
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0x4e218dd3
jmp 0x476f28
cmp eax, 0x357a6cad
je 0x478b4e
cmp eax, 0x35d92258
jne 0x476f40
cmp byte [esp + 0x19], 0
mov eax, 0x41f55e54
mov ecx, 0x3fb2f687
cmovne eax, ecx
jmp 0x476f40
cmp eax, 0xb3839b78
je 0x478b58
cmp eax, 0xb6ed4797
jne 0x476f40
mov dword [esp + 0x2c], esi
mov esi, edi
mov edi, dword [esp + 0x14]
movzx eax, byte [edi]
mov cl, 8
mov ebx, dword [esp + 0x58]
sub cl, bl
mov edx, 0xff
shrx ecx, edx, ecx
not ecx
not eax
or eax, ecx
not eax
mov ebp, dword [esp + 0x30]
movzx ecx, byte [ebp]
shlx edx, edx, ebx
xor ecx, edx
andn ecx, ecx, edx
or ecx, eax
mov byte [edi], cl
mov edx, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xfe61f005
mov ebx, 0x4560f118
cmovne edx, ebx
cmp eax, 0xffffffff
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edx
inc ebp
mov dword [esp + 0x30], ebp
inc edi
mov dword [esp + 0x14], edi
mov edi, esi
mov esi, dword [esp + 0x2c]
jmp 0x476f40
cmp eax, 0x71487a5a
je 0x478b6a
cmp eax, 0x71df3f47
jne 0x476f40
push dword [esp + 0x14]
push dword [esp + 0x90]
push dword [esp + 0x38]
call fcn.00478ce0
add esp, 0xc
mov dword [esp + 0x14], eax
cmp dword [esp + 0x90], 0
mov eax, 0x1125fb7f
mov ecx, 0xc1508888
cmove eax, ecx
jmp 0x476f40
cmp eax, 0xedb24824
je 0x478b74
cmp eax, 0xeed89cdf
jne 0x476f40
mov eax, dword [edi]
mov ecx, dword [esp + 0xc]
xor ecx, eax
andn eax, ecx, eax
mov ecx, dword [esp + 0x88]
shrx eax, eax, ecx
mov dword [esp + 0xd0], eax
mov eax, 0x61199f79
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x60], ecx
jmp 0x476f40
cmp eax, 0x274bfbcd
je 0x478bb9
cmp eax, 0x28020e80
jne 0x476f40
mov eax, dword [esp + 0x44]
shlx eax, dword [edi], eax
or eax, dword [esp + 4]
mov dword [esi], eax
mov eax, dword [esp + 0x3c]
shrx eax, dword [edi], eax
mov dword [esp + 4], eax
mov eax, 0x8214a423
jmp 0x476f40
cmp eax, 0xa4c73b99
je 0x478bc3
cmp eax, 0xa72ddd10
jne 0x476f40
mov ebp, dword [esp + 0x120]
sub ebp, dword [esp + 0xec]
mov eax, dword [edi]
not eax
mov ecx, dword [esp + 0xc]
not ecx
or ecx, eax
not ecx
shlx eax, ecx, ebp
mov edx, dword [esi]
not edx
mov ecx, dword [esp + 0x20]
not ecx
or ecx, edx
mov edx, ecx
not edx
mov ebx, ecx
and ebx, 0x57d613cd
and edx, 0xa829ec32
or edx, ebx
mov ebx, eax
not ebx
or ecx, ebx
and ebx, 0x57d613cd
and eax, 0xa829ec32
or eax, ebx
mov ebx, esi
mov esi, 0x20
sub esi, ebp
mov dword [esp + 0x3c], esi
mov esi, ebx
xor eax, edx
not ecx
or ecx, eax
mov dword [ebx], ecx
mov dword [esp + 0x44], ebp
mov eax, ebp
neg eax
shrx eax, dword [edi], eax
mov dword [esp + 4], eax
add edi, 4
add esi, 4
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x555dae41
mov ebx, 0x3a0e2ba5
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0x555dae41
jmp 0x476f28
cmp eax, 0x58afe74d
je 0x478bd5
cmp eax, 0x61199f79
jne 0x476f40
mov eax, dword [esp + 0x108]
cmp dword [eax + 4], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov eax, 0xda555916
mov ecx, 0xa4c73b99
cmove eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x84], ecx
jmp 0x476f40
cmp eax, 0xde34188f
je 0x478bec
cmp eax, 0xded96caf
jne 0x476f40
mov eax, dword [edi]
mov ecx, dword [esp + 0xc]
xor ecx, eax
andn eax, ecx, eax
mov ecx, dword [esp + 0x88]
shlx eax, eax, ecx
mov dword [esp + 0xd4], eax
mov eax, 0x61199f79
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x60], ecx
jmp 0x476f40
cmp eax, 0x3cde74ff
je 0x478c09
cmp eax, 0x3fb2f687
jne 0x476f40
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x7a8249ac
mov ebp, 0xa3e1b306
jmp 0x478818
cmp eax, 0xc0b90575
je 0x478c3c
cmp eax, 0xc1508888
jne 0x476f40
mov eax, 0xdc479d46
mov dword [esp + 0x10], 1
jmp 0x476f40
cmp eax, 0x7c2d87cc
je 0x478c4e
cmp eax, 0x7db16fe2
jne 0x476f40
mov eax, 0x274bfbcd
jmp 0x476f40
cmp eax, 0xf81bfe3e
jne 0x478cb3
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
or eax, dword [esp + 0x38]
mov dword [esp + 0x50], eax
mov eax, 0x547d98c4
jmp 0x476f40
mov eax, dword [esp + 0x108]
cmp dword [eax + 4], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc0], eax
mov eax, 0x57033022
mov ecx, 0xe4a17fc5
cmove eax, ecx
jmp 0x476f40
mov eax, 0x3bb6debb
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x6c], ecx
jmp 0x476f40
cmp byte [esp + 0x1b], 0
mov eax, 0x35e5a536
mov ecx, 0xd2c3f5fa
cmovne eax, ecx
jmp 0x476f40
mov eax, 0xdc479d46
mov dword [esp + 0x10], 0
jmp 0x476f40
mov ecx, dword [esp + 8]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x97367222
and ecx, 0x68c98ddd
or ecx, edx
mov edx, dword [esi + 4]
xor eax, edx
and eax, edx
mov edx, dword [esp + 4]
not edx
xor ecx, 0x97367222
or ecx, edx
not ecx
or ecx, eax
mov dword [esi + 4], ecx
add esi, 4
mov eax, 0x5075267c
jmp 0x476f40
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xf9703843
mov ebp, 0xcb3be1e7
jmp 0x478818
mov eax, 0xdbc8fae
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x64], ecx
jmp 0x476f40
cmp dword [esp + 0xdc], 0
mov eax, 0x274bfbcd
mov ecx, 0xfe401ba
cmove eax, ecx
jmp 0x476f40
mov ebp, dword [esp + 0xec]
sub ebp, dword [esp + 0x120]
mov eax, dword [edi]
mov ecx, dword [esp + 0xc]
xor ecx, eax
andn eax, ecx, eax
shrx eax, eax, ebp
mov ecx, dword [esi]
mov edx, dword [esp + 0x20]
xor edx, ecx
andn edx, edx, ecx
mov ecx, edx
not ecx
mov ebx, ecx
and ebx, 0xacdb7f9f
and edx, 0x53248060
or edx, ebx
mov ebx, eax
not ebx
or ecx, ebx
and ebx, 0xacdb7f9f
and eax, 0x53248060
or eax, ebx
mov ebx, esi
mov esi, 0x20
sub esi, ebp
mov dword [esp + 0x5c], esi
mov esi, ebx
xor eax, edx
mov edx, 0xffffffff
mov dword [esp + 0x48], ebp
shrx edx, edx, ebp
not ecx
or ecx, eax
mov dword [esp + 0x4c], edx
not edx
mov dword [esp + 0xa8], edx
mov dword [ebx], ecx
add edi, 4
mov eax, 0x570f1dc3
jmp 0x476f40
lea ecx, [esp + 0xe8]
lea eax, [esp + 0xe0]
push eax
call fcn.00475bf0
test al, al
mov eax, 0xd695eb08
mov ecx, 0x361ef0de
cmovne eax, ecx
jmp 0x476f40
mov edx, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x61636cae
mov ebx, 0x35d92258
cmovne edx, ebx
cmp eax, 0xffffffff
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
xor ecx, edx
andn ecx, ecx, edx
mov dword [esp + 0x40], ecx
movzx edx, byte [esp + 2]
mov ecx, edx
xor cl, 0xfe
test cl, dl
setne byte [esp + 0x19]
jmp 0x476f40
mov ecx, dword [esi]
not ecx
mov eax, dword [esp + 8]
not eax
or eax, ecx
mov ecx, eax
not ecx
mov ebp, esi
mov esi, dword [esp + 4]
mov edx, esi
not edx
mov ebx, eax
and ebx, 0xfd65828a
and ecx, 0x29a7d75
or ecx, ebx
or eax, edx
and edx, 0xfd65828a
mov ebx, esi
mov esi, ebp
and ebx, 0x29a7d75
jmp 0x47852b
mov eax, 0x274bfbcd
jmp 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xf87e0210
mov ebx, 0x5075267c
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0xf87e0210
jmp 0x476f28
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x61636cae
mov ebp, 0xaeb2cf02
jmp 0x478818
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x1b03a7cc
mov ebx, 0x33638ef7
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0x1b03a7cc
jmp 0x476f28
mov eax, dword [esp + 0x10]
mov dword [esp + 0xdc], eax
mov eax, 0x46e6d77f
jmp 0x476f40
mov eax, 0xbd3ffff2
jmp 0x476f40
cmp edi, dword [esp + 0x24]
mov eax, 0x28020e80
mov ecx, 0xde34188f
cmove eax, ecx
jmp 0x476f40
movzx eax, byte [esp + 0xe4]
xor ecx, ecx
sub cl, al
mov edx, 0xffffffff
shrx eax, edx, ecx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x108]
mov eax, dword [ecx + 4]
shlx edx, edx, eax
mov dword [esp + 8], edx
cmp eax, 1
mov eax, 0
sbb eax, eax
shl eax, 2
add eax, dword [ecx]
cmp esi, eax
sete byte [esp + 3]
mov eax, dword [esp + 0x120]
cmp dword [esp + 0xec], eax
seta byte [esp + 2]
cmp edi, dword [esp + 0x24]
mov eax, 0xe44b513
mov ecx, 0xa075b03c
cmove eax, ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x20], ecx
jmp 0x476f40
mov dword [esp + 0x10], 1
mov eax, 0x3043517d
jmp 0x476f40
mov eax, 0xe6a0be9d
jmp 0x476f40
mov eax, dword [edi]
mov ecx, dword [esp + 0x28]
xor ecx, eax
andn eax, ecx, eax
mov ecx, dword [esp + 0x44]
shlx eax, eax, ecx
mov ecx, dword [esi]
mov edx, dword [esp + 8]
xor edx, ecx
andn ecx, edx, ecx
or ecx, eax
mov eax, ecx
not eax
mov ebp, esi
mov esi, dword [esp + 4]
mov edx, esi
not edx
mov ebx, eax
and ebx, 0xf441e1a2
and ecx, 0xbbe1e5d
or ecx, ebx
or eax, edx
and edx, 0xf441e1a2
mov ebx, esi
mov esi, ebp
and ebx, 0xbbe1e5d
or ebx, edx
xor ebx, ecx
not eax
or eax, ebx
mov dword [ebp], eax
mov eax, 0x7c2d87cc
jmp 0x476f40
add edi, 4
add esi, 4
mov eax, 0xbd3ffff2
jmp 0x476f40
mov ecx, dword [esi]
not ecx
mov eax, dword [esp + 0x4c]
not eax
or eax, ecx
mov ecx, eax
not ecx
mov ebp, dword [esp + 0x78]
mov edx, ebp
not edx
mov ebx, eax
and ebx, 0xef056fb0
and ecx, 0x10fa904f
or ecx, ebx
or eax, edx
and edx, 0xef056fb0
mov ebx, ebp
and ebx, 0x10fa904f
or ebx, edx
xor ebx, ecx
not eax
or eax, ebx
mov dword [esi], eax
mov eax, dword [esp + 0x48]
cmp dword [esp + 0xe4], eax
mov eax, 0x89dc1b90
mov ecx, 0x6cd723c1
cmove eax, ecx
jmp 0x476f40
mov eax, dword [esp + 0x120]
sub eax, dword [esp + 0xec]
mov dword [esp + 0xb4], eax
mov eax, 0x3bb6debb
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x6c], ecx
jmp 0x476f40
mov eax, dword [esp + 0x120]
sub eax, dword [esp + 0xec]
mov dword [esp + 0xcc], eax
mov eax, 0x76ebade1
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x68], ecx
jmp 0x476f40
mov ecx, dword [esi]
not ecx
mov eax, dword [esp + 0x20]
not eax
or eax, ecx
mov edx, eax
not edx
mov ebp, dword [esp + 0x80]
mov ecx, ebp
not ecx
mov ebx, eax
and ebx, 0x5f9ab7e7
and edx, 0xa0654818
or edx, ebx
or eax, ecx
and ecx, 0x5f9ab7e7
mov ebx, ebp
and ebx, 0xa0654818
or ebx, ecx
mov ecx, dword [esi + 4]
xor ebx, edx
not eax
or eax, ebx
mov dword [esi], eax
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x108]
sub eax, dword [edx + 4]
mov edx, dword [edi]
not edx
mov ebx, dword [esp + 0x40]
not ebx
or ebx, edx
not ebx
shrx eax, ebx, eax
mov edx, dword [esp + 8]
xor edx, ecx
andn edx, edx, ecx
mov ecx, edx
not ecx
mov ebx, ecx
and ebx, 0x5ee0876b
and edx, 0xa11f7894
or edx, ebx
mov ebx, eax
not ebx
or ecx, ebx
and ebx, 0x5ee0876b
and eax, 0xa11f7894
or eax, ebx
xor eax, edx
not ecx
or ecx, eax
mov dword [esi + 4], ecx
add esi, 4
mov eax, 0x91e22cd6
jmp 0x476f40
mov eax, 0x9e0d865a
jmp 0x476f40
mov eax, 0xedb24824
jmp 0x476f40
mov eax, dword [esp + 0xc0]
or eax, dword [esp + 0x74]
mov ecx, dword [esi]
xor eax, ecx
andn ecx, eax, ecx
mov eax, ecx
not eax
mov ebp, dword [esp + 0x80]
mov edx, ebp
not edx
mov ebx, eax
and ebx, 0x6a608cc3
and ecx, 0x959f733c
or ecx, ebx
or eax, edx
and edx, 0x6a608cc3
mov ebx, ebp
and ebx, 0x959f733c
or ebx, edx
xor ebx, ecx
not eax
or eax, ebx
mov dword [esi], eax
mov eax, 0x91e22cd6
jmp 0x476f40
cmp dword [esp + 0xe4], 0
setne byte [esp + 0x1d]
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0x10fcadcb
mov ebx, 0xed33f980
jmp 0x478ac7
mov eax, dword [esp + 0x108]
mov eax, dword [eax + 4]
sub eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
not ecx
mov edx, dword [esp + 0x28]
not edx
or edx, ecx
not edx
shlx eax, edx, eax
mov ecx, dword [esi]
mov edx, dword [esp + 0x50]
xor edx, ecx
andn ecx, edx, ecx
or ecx, eax
mov eax, ecx
not eax
mov ebp, dword [esp + 0x84]
mov edx, ebp
not edx
mov ebx, eax
and ebx, 0xa6d452e8
and ecx, 0x592bad17
or ecx, ebx
or eax, edx
and edx, 0xa6d452e8
mov ebx, ebp
and ebx, 0x592bad17
or ebx, edx
xor ebx, ecx
not eax
or eax, ebx
mov dword [esi], eax
mov eax, 0x1a777574
jmp 0x476f40
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
xor eax, ecx
andn eax, eax, ecx
mov dword [esp + 0x40], eax
mov eax, 0xaeb2cf02
jmp 0x476f40
mov eax, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x2f880cef
mov ebp, 0xedb24824
cmovne ebx, ebp
test eax, edx
mov eax, ebx
cmove eax, ebp
cmp ecx, 0xa
cmovge eax, ebx
jmp 0x476f40
mov dword [esp + 0x74], 0
mov eax, 0x2fb3fb64
jmp 0x476f40
mov eax, dword [esp + 0xec]
sub eax, dword [esp + 0x120]
mov dword [esp + 0xc8], eax
mov eax, 0x76ebade1
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x68], ecx
jmp 0x476f40
mov eax, dword [esi]
not eax
mov ecx, dword [esp + 0x4c]
not ecx
or ecx, eax
mov eax, dword [esp + 0x5c]
shlx eax, dword [edi], eax
not ecx
or ecx, eax
mov eax, dword [esi + 4]
mov dword [esi], ecx
mov ecx, dword [esp + 0xa8]
xor ecx, eax
andn eax, ecx, eax
mov ecx, dword [esp + 0x48]
shrx ecx, dword [edi], ecx
or eax, ecx
mov dword [esi + 4], eax
add esi, 4
mov eax, 0xcd846c36
jmp 0x476f40
mov eax, 0x274bfbcd
mov dword [esp + 0x10], 1
jmp 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xb3839b78
mov ebx, 0x7db16fe2
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
setl dl
mov ebp, 0xb3839b78
cmovge eax, ebp
xor dl, cl
cmovne eax, ebx
mov dword [esp + 0x10], 1
jmp 0x476f40
mov eax, dword [esp + 0xec]
and eax, 7
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0xa4]
mov eax, 0x729ac552
mov ecx, 0xbd377b7c
cmove eax, ecx
jmp 0x476f40
mov eax, dword [esi + 4]
mov ebx, dword [esp + 8]
mov ecx, ebx
xor ecx, eax
andn eax, ecx, eax
mov edx, dword [esp + 4]
not edx
or edx, ebx
mov ecx, eax
not ecx
mov ebx, ecx
and ebx, 0x6e3b1db5
and eax, 0x91c4e24a
or eax, ebx
mov ebx, edx
not ebx
or ecx, edx
and edx, 0x6e3b1db5
and ebx, 0x91c4e24a
or ebx, edx
xor ebx, eax
not ecx
or ecx, ebx
mov dword [esi + 4], ecx
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xf87e0210
mov ebp, 0x357a6cad
cmove eax, ebp
cmp dword [0x5c47fc], 0xa
setl dl
mov ebx, 0xf87e0210
cmovge eax, ebx
xor dl, cl
lea esi, [esi + 4]
cmovne eax, ebp
jmp 0x476f40
mov eax, dword [0x5c4790]
mov ecx, dword [0x5c4794]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov esi, 0x85fb5e80
mov ebx, 0x4c6cd5cf
cmovne esi, ebx
test eax, edx
sete byte [esp + 0x1e]
mov edi, dword [esp + 0xe8]
mov eax, esi
cmove eax, ebx
cmp ecx, 0xa
setl byte [esp + 0x1f]
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x24], ecx
cmovge eax, esi
mov ecx, 0xb2f2ac19
nop word cs:[eax + eax]
cmp ecx, 0xdd02c5f9
jle 0x478a40
cmp ecx, 0xdd02c5fa
je 0x478a79
cmp ecx, 0x4c6cd5cf
jne 0x478a20
jmp 0x478c58
cmp ecx, 0x85fb5e80
je 0x478a7d
cmp ecx, 0xb2f2ac19
jne 0x478a20
movzx edx, byte [esp + 0x1e]
movzx ecx, byte [esp + 0x1f]
mov ch, dl
xor ch, cl
mov esi, 0x85fb5e80
mov ebx, 0xdd02c5fa
cmovne esi, ebx
test cl, cl
mov ecx, esi
cmovne ecx, ebx
test dl, dl
cmove ecx, esi
jmp 0x478a20
mov ecx, eax
jmp 0x478a20
mov ecx, 0xdd02c5fa
jmp 0x478a20
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x11c]
mov dword [ecx], eax
mov eax, dword [esp + 0x120]
mov dword [ecx + 4], eax
mov eax, 0xc6f08333
jmp 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x10fcadcb
mov ebx, 0xab7284ac
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0x10fcadcb
jmp 0x476f28
mov eax, 0x2fb3fb64
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x74], ecx
jmp 0x476f40
mov eax, 0xcb3be1e7
jmp 0x476f40
mov eax, 0xab7284ac
jmp 0x476f40
cmp byte [esp + 0x1c], 0
mov eax, 0x6f1f14b3
mov ecx, 0xabbc9745
cmovne eax, ecx
jmp 0x476f40
mov eax, dword [0x5c47f8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0xdca4fddf
mov ebx, 0xf3f0324f
cmove eax, ebx
cmp dword [0x5c47fc], 0xa
mov edx, 0xdca4fddf
jmp 0x476f28
mov eax, 0x22fb482c
jmp 0x476f40
mov dword [esp + 0x10], 1
mov eax, 0x98a1f88f
jmp 0x476f40
mov eax, 0xe6a0be9d
jmp 0x476f40
mov edx, dword [0x5c47f8]
mov ecx, dword [0x5c47fc]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x2f880cef
mov ebx, 0xc5abef18
cmovne edx, ebx
cmp eax, 0xffffffff
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edx
jmp 0x476f40
mov eax, 0xc6f08333
jmp 0x476f40
mov dword [esp + 0x70], 0
mov eax, 0x48d9c126
jmp 0x476f40
cmp byte [esp + 0x1a], 0
mov eax, 0xce129bf9
mov ecx, 0x3cde74ff
cmovne eax, ecx
jmp 0x476f40
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0xe4], eax
mov eax, 0xbab85290
mov ecx, 0xbb6bbdcf
cmovb eax, ecx
jmp 0x476f40
mov eax, dword [edi]
not eax
mov ecx, dword [esp + 0x40]
not ecx
or ecx, eax
not ecx
mov eax, dword [esp + 0x54]
shrx eax, ecx, eax
mov dword [esp + 0xb8], eax
mov eax, 0xdbc8fae
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x64], ecx
jmp 0x476f40
mov dword [esp + 0x7c], 0
mov eax, 0x78cf3055
jmp 0x476f40
mov eax, 0x71487a5a
jmp 0x476f40
mov eax, dword [esp + 0x24]
sub eax, edi
shl eax, 3
add eax, dword [esp + 0xe4]
sub eax, dword [esp + 0xec]
mov edx, dword [esp + 0x108]
mov esi, dword [esp + 0x11c]
mov dword [edx], esi
mov ecx, dword [esp + 0x120]
mov dword [edx + 4], ecx
mov ecx, edx
push eax
call fcn.00476c20
movzx eax, byte [esp + 0xec]
mov ecx, 0xffffffff
shlx eax, ecx, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x9c]
jmp 0x476f40
cmp eax, 0xf3f0324f
jne 0x476f40
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.005892d5
mov eax, dword [esp + 0x108]
add esp, 0xf4
pop esi
pop edi
pop ebx
pop ebp
ret