Function at 0x4276e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc8
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov edx, eax
xor edx, 0xffffffff
or edx, 0xfff7ffff
xor eax, 0xffffffff
or eax, 0xfff7ffff
xor edx, 0xffffffff
xor eax, 0xffffffff
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, eax
xor eax, 0xffffffff
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
xor eax, eax
cmp ecx, 0
je 0x42775c
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x40]
add eax, 0xd9934ed0
sub eax, ecx
add eax, 0x266cb130
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x24]
setbe al
and al, 1
movzx eax, al
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
jne 0x4277ac
jmp 0x427770
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x8c]
xor edx, edx
sub edx, ecx
add eax, edx
cmp eax, 0x14ccc
setae al
test al, 1
jne 0x427797
jmp 0x4277ac
jmp 0x427799
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
jmp 0x4277b5
mov eax, dword [esp + 0xc]
add eax, 0x39272
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
add eax, 0x14ccc
add eax, 0xfffffff0
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x58], 0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x5c], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
movzx eax, byte [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x38]
shr eax, cl
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x2c]
mov byte [ecx], al
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x38], 8
sete al
and al, 1
movzx eax, al
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x28]
xor esi, esi
sub esi, eax
add esi, 0
add edx, esi
mov dword [ecx + 0x28], edx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov ecx, eax
xor ecx, 0x1000
xor ecx, 0xffffffff
or eax, 0x1000
and eax, ecx
cmp eax, 0
je 0x427a2b
jmp 0x427853
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x64], 0
setne al
test al, 1
jne 0x427a2b
jmp 0x427868
jmp 0x42786a
mov dword [esp + 0xc4], pe_nt_image_headers32
mov dword [esp + 0xc0], 8
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl esi, cl
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov ebx, dword [eax + 0x48]
mov edx, ebx
xor edx, 0xffffffff
mov eax, esi
xor eax, 0xffffffff
mov ebp, edx
add ebp, 1
mov ecx, edx
xor ecx, 0xffffffff
or ecx, 0x985d5357
add ecx, ebp
and ebx, 0x67a2aca8
mov ebp, eax
and ebp, 0x985d5357
mov edi, esi
xor edi, 0x985d5357
and edi, esi
or ecx, ebx
mov esi, edi
xor esi, 0xffffffff
mov ebx, ebp
and ebx, esi
mov esi, ebp
xor esi, edi
add ebp, esi
sub ebp, ebx
xor ecx, ebp
mov edi, edx
and edi, eax
xor edx, eax
or edi, edx
or edi, edi
xor edi, 0xffffffff
or edi, 0
xor edi, 0xffffffff
xor edi, 0xffffffff
and edi, 0xffffffff
and edi, 0xffffffff
or ecx, edi
mov eax, dword [esp + 0x54]
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
jmp 0x42791c
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42796d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x42794e
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff7
add ecx, 1
mov dword [eax + 0x44], ecx
jmp 0x42791c
jmp 0x42796f
jmp 0x427971
jmp 0x427973
jmp 0x427975
mov dword [esp + 0xbc], 1
mov dword [esp + 0xb8], 8
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
xor esi, esi
sub esi, edx
xor edx, edx
sub edx, eax
add esi, edx
xor eax, eax
sub eax, esi
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x427a1f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4279f6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff7
mov edx, ecx
and edx, 1
shl edx, 1
xor ecx, 1
add ecx, edx
mov dword [eax + 0x44], ecx
jmp 0x4279c4
jmp 0x427a21
jmp 0x427a23
jmp 0x427a25
jmp 0x427a27
jmp 0x427a29
jmp 0x427a2b
jmp 0x427a2d
cmp dword [esp + 0x34], 4
sete al
and al, 1
movzx eax, al
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], 1
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
xor esi, esi
sub esi, eax
sub edx, esi
mov dword [ecx + 0x44], edx
jmp 0x427a7f
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x427acf
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x427ab1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x427ab3
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x427a7f
jmp 0x427ad1
jmp 0x427ad3
jmp 0x427ad5
jmp 0x427ad7
jmp 0x427ad9
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x3c], 0
jne 0x427b48
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
mov eax, ecx
and eax, 0x40000
xor eax, 0xffffffff
and ecx, 0x40000
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov cl, 1
cmp eax, 0
jne 0x427b35
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0x30
setb cl
and cl, 1
movzx edx, cl
mov ecx, dword [esp + 0xc]
call fcn.0042fed0
mov dword [esp + 0x40], eax
cmp dword [esp + 0x3c], 0
jne 0x427ba0
jmp 0x427b51
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0
setne al
test al, 1
jne 0x427b65
jmp 0x427f73
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x30]
sub eax, ecx
add eax, 0x781a3d90
sub eax, 0xc1413053
sub eax, 0x781a3d90
sub eax, 0xffffffff
sub eax, 0xd3f06e52
add eax, 0xc1413053
add eax, 0xd3f06e52
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x3c]
jb 0x427f73
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0xc]
sub eax, dword [ecx + 0x40]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x24]
ja 0x427f73
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x44], eax
jmp 0x427bde
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 2
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x427c6d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x427c51
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x427c1f
jmp 0x427c6f
jmp 0x427c71
jmp 0x427c73
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x427d2e
jmp 0x427c83
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0xc]
mov ecx, 8
sub ecx, dword [eax + 0x44]
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x48]
mov esi, edx
and esi, eax
xor edx, eax
or esi, edx
mov dword [ecx + 0x48], esi
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x427d26
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x427d0a
jmp 0x427cf0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x427d0a
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x427cd4
jmp 0x427d28
jmp 0x427d2a
jmp 0x427d2c
jmp 0x427d2e
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], 0
je 0x427e3f
jmp 0x427d43
jmp 0x427d45
jmp 0x427d47
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x3c]
mov ecx, eax
xor ecx, 0xffff0000
xor eax, 0xffffffff
mov edx, ecx
xor edx, eax
and edx, ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], 0x10
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x48]
mov esi, eax
xor esi, 0xffffffff
mov edi, edx
and edi, esi
mov esi, edx
xor esi, eax
add edx, esi
sub edx, edi
mov dword [ecx + 0x48], edx
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x427e0d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x427de3
jmp 0x427dc9
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x427de3
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
xor edx, 8
and ecx, 0xfffffff7
shl ecx, 1
xor esi, esi
sub esi, edx
add ecx, esi
mov dword [eax + 0x44], ecx
jmp 0x427dad
jmp 0x427e0f
jmp 0x427e11
jmp 0x427e13
jmp 0x427e15
mov eax, dword [esp + 0x10]
add eax, 0x80342137
add eax, 0xffffffff
sub eax, 0x80342137
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x3c]
xor ecx, 0xffff
mov dword [eax + 0x3c], ecx
jmp 0x427d36
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x3c]
jae 0x427f71
jmp 0x427e5a
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x40]
mov edx, dword [esp + 0x10]
xor edx, 0xffffffff
sub edx, 0xffffffff
sub ecx, edx
and ecx, 0x7fff
movzx eax, byte [eax + ecx + 0x90]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], 8
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
mov edi, edx
xor edi, 0xffffffff
mov esi, ecx
and esi, edi
mov edi, ecx
and edi, edx
shl edi, 1
mov ebx, ecx
add ebx, edx
sub ebx, edi
add ecx, 0x2965c872
add ecx, ebx
sub ecx, 0x2965c872
sub ecx, esi
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
xor eax, 0xffffffff
and eax, 0xffffffff
or eax, 0
add eax, 1
sub edx, eax
mov dword [ecx + 0x44], edx
jmp 0x427ef4
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x427f05
jmp 0x427f4f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x427f31
jmp 0x427f17
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x427f31
jmp 0x427f33
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x427ef2
jmp 0x427f51
jmp 0x427f53
jmp 0x427f55
jmp 0x427f57
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esp + 0x10], eax
jmp 0x427e47
jmp 0x427faf
cmp dword [esp + 0x40], 0
jne 0x427fa9
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x44], eax
mov ecx, dword [esp + 0xc]
mov edx, 1
call fcn.0042fed0
jmp 0x427fab
jmp 0x427fad
jmp 0x427faf
cmp dword [esp + 0x34], 0
je 0x42873c
cmp dword [esp + 0x34], 4
jne 0x4283c0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x428183
jmp 0x427fd5
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov ecx, eax
xor ecx, 8
xor eax, 0xffffffff
and eax, 8
shl eax, 1
sub eax, ecx
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], eax
mov esi, dword [eax + 0x48]
mov ecx, esi
xor ecx, 0xffffffff
and ecx, 0xffffffff
or ecx, 0
mov eax, edx
xor eax, 0xffffffff
and eax, 0xffffffff
or eax, 0
mov ebp, ecx
xor ebp, 0xffffffff
or ebp, 0x257bdd83
mov edi, ecx
and edi, 0xda84227c
xor edi, 0xffffffff
xor ebp, 0xffffffff
xor edi, 0xffffffff
or ebp, edi
and esi, 0x257bdd83
mov ebx, eax
and ebx, 0xda84227c
mov edi, edx
and edi, 0x257bdd83
xor edi, 0xffffffff
and edx, 0x257bdd83
xor edx, 0xffffffff
and edi, edx
xor edi, 0xffffffff
mov edx, ebp
xor edx, 0xffffffff
xor ebp, 0xffffffff
or edx, ebp
mov ebp, esi
xor ebp, 0xffffffff
xor esi, 0xffffffff
or ebp, esi
and edx, ebp
xor edx, 0xffffffff
or ebx, edi
mov edi, edx
xor edi, 0xffffffff
mov esi, ebx
and esi, edi
xor ebx, 0xffffffff
and edx, ebx
or esi, edx
mov edi, ecx
or edi, eax
xor edi, 0xffffffff
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
xor edi, 0xffffffff
xor ecx, 0xffffffff
and edi, ecx
mov eax, edi
and eax, 0xffffffff
shl eax, 1
add edi, 0xffffffff
sub edi, eax
and edi, 0xffffffff
mov eax, esi
xor eax, 0xffffffff
mov edx, edi
xor edx, 0xffffffff
mov ecx, eax
and ecx, 0x957b4557
and esi, 0x6a84baa8
mov ebx, edx
and ebx, 0x957b4557
and edi, 0x6a84baa8
or ecx, esi
or ebx, edi
xor ecx, ebx
or eax, edx
xor eax, 0xffffffff
and eax, 0xffffffff
or ecx, eax
mov eax, dword [esp + 0x60]
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
mov esi, edx
and esi, eax
or edx, eax
add esi, edx
mov dword [ecx + 0x44], esi
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42817b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x428153
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x428155
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
xor edx, 0xffffffff
and edx, 8
and ecx, 0xfffffff7
sub ecx, edx
mov dword [eax + 0x44], ecx
jmp 0x428121
jmp 0x42817d
jmp 0x42817f
jmp 0x428181
jmp 0x428183
jmp 0x428185
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
xor edx, 0xffffffff
and edx, 0xffffffff
shl edx, 1
sub edx, 0xffffffff
sub eax, edx
and eax, eax
xor eax, 0xffffffff
xor eax, 0xffffffff
or eax, 0x1000
mov edx, eax
and edx, ecx
or eax, ecx
add edx, eax
cmp edx, 0
setne al
test al, 1
jne 0x4281cb
jmp 0x4283bb
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0
jmp 0x4281e0
cmp dword [esp + 0x28], 4
jae 0x4283bb
jmp 0x4281ed
jmp 0x4281ef
jmp 0x4281f1
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and eax, 0xffffffff
xor eax, 0xffffffff
xor eax, 0xffffffff
or eax, 0
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x6352f0dc
and eax, 0x9cad0f23
or ecx, eax
xor ecx, 0x9cad0fdc
or ecx, 0xffffff00
xor ecx, 0xffffffff
and ecx, 0xffffffff
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], 8
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl esi, cl
mov eax, dword [esp + 0xc]
mov dword [esp + 0x5c], eax
mov ebx, dword [eax + 0x48]
mov ecx, ebx
xor ecx, 0xffffffff
mov eax, ebx
xor eax, 0xffffffff
and ecx, eax
xor ecx, 0xffffffff
and ecx, 0xffffffff
xor ecx, 0xffffffff
and ecx, 0xffffffff
mov edi, esi
xor edi, 0xffffffff
mov dword [esp + 0x50], edi
mov edx, ecx
xor edx, 0xffffffff
or edx, 0x905dfb97
xor edx, 0xffffffff
and edx, 0xffffffff
and ebx, 0x905dfb97
and edi, 0x6fa20468
and esi, 0x905dfb97
or edx, ebx
mov ebp, edi
xor ebp, 0xffffffff
mov eax, esi
xor eax, 0xffffffff
mov dword [esp + 0x38], eax
mov ebx, ebp
and ebx, 0xfaf9b79d
and edi, 0x5064862
mov eax, dword [esp + 0x38]
and eax, 0xfaf9b79d
and esi, 0x5064862
or ebx, edi
or eax, esi
xor ebx, eax
or ebp, dword [esp + 0x38]
xor ebp, 0xffffffff
and ebp, 0xffffffff
or ebx, ebp
mov eax, edx
and eax, ebx
shl eax, 1
add edx, ebx
sub edx, eax
mov eax, ecx
mov esi, dword [esp + 0x50]
and eax, esi
xor ecx, esi
or eax, ecx
xor eax, 0xffffffff
mov ecx, eax
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
or ecx, 0
xor ecx, 0xffffffff
or edx, ecx
mov eax, dword [esp + 0x5c]
mov dword [eax + 0x48], edx
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
add edx, 0xf224c6de
add edx, eax
sub edx, 0xf224c6de
mov dword [ecx + 0x44], edx
jmp 0x428336
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x428347
jmp 0x428398
jmp 0x428349
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x428360
jmp 0x42837c
jmp 0x428362
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x42837c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x428334
jmp 0x42839a
jmp 0x42839c
mov eax, dword [esp + 0x24]
shl eax, 8
mov dword [esp + 0x24], eax
jmp 0x4283a9
jmp 0x4283ab
mov eax, dword [esp + 0x28]
sub eax, 0xffffffff
mov dword [esp + 0x28], eax
jmp 0x4281e0
jmp 0x42873a
mov dword [esp + 0x1c], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 3
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl esi, cl
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
mov edx, ecx
xor edx, 0xffffffff
mov edi, esi
xor edi, 0xffffffff
and edx, edi
or ecx, esi
xor ecx, 0xffffffff
xor edx, 0xffffffff
xor ecx, 0xffffffff
and edx, ecx
mov dword [eax + 0x48], edx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42846f
jmp 0x428422
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x428439
jmp 0x428451
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x428453
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x428416
jmp 0x428471
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x4285f6
jmp 0x428481
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 8
mov edx, eax
and edx, edx
xor edx, 0xffffffff
and edx, 8
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
and eax, 8
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
xor esi, 0xffffffff
and esi, 2
imul esi, edx
mov edx, eax
and edx, 2
or eax, 2
imul eax, edx
add eax, esi
sub eax, ecx
mov dword [esp + 0x70], eax
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edi, cl
mov eax, dword [esp + 0xc]
mov dword [esp + 0x58], eax
mov ebp, dword [eax + 0x48]
mov edx, ebp
xor edx, 0xffffffff
mov esi, edi
xor esi, 0xffffffff
mov ebx, edx
add ebx, 1
mov ecx, edx
xor ecx, 0xffffffff
or ecx, 0x5a517726
add ecx, ebx
and ebp, 0xa5ae88d9
mov ebx, esi
xor ebx, 0xffffffff
or ebx, 0xa5ae88d9
xor ebx, 0xffffffff
and ebx, 0xffffffff
xor edi, 0xffffffff
or edi, 0x5a517726
xor edi, 0xffffffff
and edi, 0xffffffff
or ecx, ebp
mov ebp, edi
xor ebp, 0xffffffff
mov eax, ebx
and eax, ebp
mov ebp, ebx
xor ebp, edi
add ebx, ebp
sub ebx, eax
mov eax, ecx
and eax, ebx
shl eax, 1
add ecx, ebx
sub ecx, eax
or edx, esi
or edx, edx
xor edx, 0xffffffff
xor edx, 0xffffffff
and edx, 0xffffffff
xor edx, 0xffffffff
and edx, 0xffffffff
mov eax, edx
xor eax, 0
and eax, edx
mov edx, eax
xor edx, 0xffffffff
mov esi, ecx
and esi, edx
mov edx, ecx
xor edx, eax
add ecx, edx
sub ecx, esi
mov eax, dword [esp + 0x58]
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
sub edx, 0x336e27b7
add edx, eax
add edx, 0x336e27b7
mov dword [ecx + 0x44], edx
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x4285ee
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4285cf
jmp 0x4285b5
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x4285cf
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff7
add ecx, 1
mov dword [eax + 0x44], ecx
jmp 0x428599
jmp 0x4285f0
jmp 0x4285f2
jmp 0x4285f4
jmp 0x4285f6
jmp 0x4285f8
mov dword [esp + 0x20], 2
jmp 0x428602
cmp dword [esp + 0x20], 0
je 0x42873a
jmp 0x42860f
mov ecx, dword [esp + 0x1c]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
or eax, 0
and eax, 0xffffffff
xor eax, 0xffffffff
or eax, 0xffff0000
and ecx, 0xffff
xor ecx, 0xffffffff
xor ecx, 0xffffffff
mov edx, eax
xor edx, ecx
and edx, eax
xor edx, 0xffffffff
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], 0x10
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x48]
mov ecx, ebx
xor ecx, 0xffffffff
mov edi, edx
xor edi, 0xffffffff
mov esi, ecx
and esi, 0x1f744e74
and ebx, 0xe08bb18b
mov ebp, edi
and ebp, 0x1f744e74
and edx, 0xe08bb18b
or esi, ebx
or ebp, edx
xor esi, ebp
or ecx, edi
xor ecx, 0xffffffff
and ecx, 0xffffffff
or esi, ecx
mov dword [eax + 0x48], esi
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
sub edx, 0x3cbf8678
add edx, eax
add edx, 0x3cbf8678
mov dword [ecx + 0x44], edx
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x428717
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4286ec
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0x45ea6c09
add ecx, 0xfffffff7
add ecx, 1
sub ecx, 0x45ea6c09
mov dword [eax + 0x44], ecx
jmp 0x4286ba
jmp 0x428719
jmp 0x42871b
jmp 0x42871d
mov eax, dword [esp + 0x20]
add eax, 0xffffffff
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
xor eax, 0xffff
mov dword [esp + 0x1c], eax
jmp 0x428602
jmp 0x42873c
mov eax, dword [esp + 0xc]
add eax, 0x8192
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x240
call fcn.00450730
mov eax, dword [esp + 0xc]
add eax, 0x8192
add eax, 0x240
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x40
call fcn.00450730
mov eax, dword [esp + 0xc]
add eax, 0x9272
add eax, 1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0xc]
add eax, 0x9272
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x38], 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x40]
add edx, 0x36aee7b6
add edx, eax
sub edx, 0x36aee7b6
mov dword [ecx + 0x40], edx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x64]
add ecx, 1
mov dword [eax + 0x64], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x14], eax
cmp eax, 0
je 0x4289cd
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
je 0x4288a3
jmp 0x428815
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x84]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x70]
sub eax, 0x16ff86f0
mov edx, eax
xor edx, 0xffffffff
and edx, ecx
xor ecx, 0xffffffff
and eax, ecx
sub eax, edx
add eax, 0x16ff86ef
add eax, 1
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
add esi, 0x39272
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call eax
cmp eax, 0
setne al
test al, 1
jne 0x42889e
jmp 0x42887e
mov eax, dword [esp + 0xc]
mov dword [eax + 0x6c], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x64], 1
jmp 0x4289e4
jmp 0x4289c7
jmp 0x4288a5
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
add ecx, 0x39272
cmp eax, ecx
sete al
test al, 1
jne 0x4288c1
jmp 0x4289a6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x7c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xc]
sub ecx, dword [edx + 0x8c]
cmp eax, ecx
jae 0x4288e2
mov eax, dword [esp + 0x14]
jmp 0x428903
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x8c]
mov edx, eax
xor edx, ecx
xor ecx, 0xffffffff
and eax, ecx
shl eax, 1
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
mov ecx, dword [esp + 0xc]
add ecx, 0x39272
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0044fc30
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x8c]
sub ecx, 0xe56673cf
mov esi, ecx
and esi, edx
shl esi, 1
xor ecx, edx
add ecx, esi
mov edx, ecx
and edx, 0xe56673cf
or ecx, 0xe56673cf
add edx, ecx
mov dword [eax + 0x8c], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0xffffffff
xor edx, edx
sub edx, eax
add ecx, edx
mov dword [esp + 0x14], ecx
cmp ecx, 0
setne al
test al, 1
jne 0x42898e
jmp 0x4289a4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x5c], eax
jmp 0x4289c5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x8c]
mov esi, edx
and esi, eax
shl esi, 1
xor edx, eax
add edx, esi
mov dword [ecx + 0x8c], edx
jmp 0x4289c7
jmp 0x4289c9
jmp 0x4289cb
jmp 0x4289cd
jmp 0x4289cf
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x64], 1
jmp 0x4289e4
mov eax, dword [esp + 0x4c]
add esp, 0xc8
pop esi
pop edi
pop ebx
pop ebp
ret